ArrayList multidimensional?

Em java não se usa “==” para se comparar Strings.

Use:

sn.equalsIgnoreCase("sim"); //Ignora a diferença entra letras maiúsculas e minúsculas /* ou */ sn.equals("sim"); //Diferencia letras maiúsculas e minúsculas

Flw

pq ele esta dizendo que minha arraySize = 0 mesmo quando eu ja armazenei diversos objetos dentro dela?


import java.util.ArrayList;
import javax.swing.*;
import java.util.Scanner;

class Pessoa{
	private String name;
	private int idade;
	private String cidade;

	public Pessoa(String name, int idade, String cidade) {
		this.name = name;
		this.idade = idade;
		this.cidade = cidade;
	}

	//METODOS GETTERS
	public String getName() {
		return this.name;
	}
	public int getAge() {
		return this.idade;
	}
	public String getCity() {
		return this.cidade;
	}
}

public class Info {
	public static void main(String args[]) {
		int n = Integer.parseInt(JOptionPane.showInputDialog("Deseja adicionar informacoes de quantas pessoas? "));
		int x;
		String sn = new String("SIM");
		ArrayList<Pessoa> listaInfo = new ArrayList<Pessoa>();
		do {
			for (x=0; x<n; x++) {
				String name = JOptionPane.showInputDialog("Digite o nome da "+(x+1)+"ªpessoa: ");
				int idade = Integer.parseInt(JOptionPane.showInputDialog("Digite a idade: "));
				String cidade = JOptionPane.showInputDialog("Digite a cidade: ");
				Pessoa p = new Pessoa(name, idade, cidade);
			}
			sn = JOptionPane.showInputDialog("Deseja ADICIONAR informações de mais pessoas?");
			sn.toUpperCase();
			if (sn.equalsIgnoreCase("SIM")) {
				n = Integer.parseInt(JOptionPane.showInputDialog("Deseja adicionar informacoes de quantas pessoas? "));
			}
		} while (sn.equalsIgnoreCase("SIM"));
		JOptionPane.showMessageDialog(null,
    								 	"Informações armazenadas com sucesso!",
    								 	"Parabéns",
    								 	JOptionPane.PLAIN_MESSAGE);
    	sn = JOptionPane.showInputDialog("Deseja OBTER informações de alguma pessoa?");
    	int arraySize=0;
    	int y=0;
    	if (sn.equalsIgnoreCase("SIM")) {
  				arraySize = listaInfo.size();
				JOptionPane.showMessageDialog(null,
    								 	"Digite na próxima tela o numero referente a pessoa da qual deseja obter informações!",
    								 	"ATENÇÃO",
    								 	JOptionPane.PLAIN_MESSAGE);
 
				System.out.println(arraySize); // ELE ESTA IMPRIMINDO SEMPRE 0, COMO SE MINHA ARRAYLIST TIVESSE 0 OBJETOS


				n = Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da pessoa da qual deseja obter informações\n\n"));
		} else {
			JOptionPane.showMessageDialog(null,
    								 	"Programa executado com sucesso!",
    								 	"FIM",
    								 	JOptionPane.PLAIN_MESSAGE);
		}
	}
}

nossa como eu sou burro
esqueci de adicionar as paradas na ArrayList com o listInfo.add()
puta que pariu

Então, no C, quando vc compara dois char* com ==, vc tá comparando endereços de ponteiro, certo? Se vc quiser comparar as duas, precisa do strcmp.

No Java é a mesma coisa. Se vc comparar com ==, estará testando se duas Strings são o mesmo objeto, ou seja, se o endereço de memória das duas é idêntico.

O equals é o cara que faz a comparação de igualdade.

Outra coisa, o método compare retorna:
> 0 se a String sendo comparada for maior que a recebida por parâmetro
== 0 se as duas Strings forem iguais
< 0 Se a String sendo comparada for menor que a recebida por parâmetro.

Sempre leia o javadoc antes de usar um método. Programar por tentativa e erro dificilmente dá certo.

finalizei o programa! weee

import java.util.ArrayList;
import javax.swing.*;
import java.util.Scanner;

class Pessoa{
	private String name;
	private int idade;
	private String cidade;

	public Pessoa(String name, int idade, String cidade) {
		this.name = name;
		this.idade = idade;
		this.cidade = cidade;
	}

	//METODOS GETTERS
	public String getName() {
		return this.name;
	}
	public int getAge() {
		return this.idade;
	}
	public String getCity() {
		return this.cidade;
	}
}

public class Info {
	public static void main(String args[]) {
		int n = Integer.parseInt(JOptionPane.showInputDialog("Deseja adicionar informacoes de quantas pessoas? "));
		int x;
		String sn = new String("SIM");
		ArrayList<Pessoa> listaInfo = new ArrayList<Pessoa>();
		do {
			for (x=0; x<n; x++) {
				String name = JOptionPane.showInputDialog("Digite o nome da "+(x+1)+"ªpessoa: ");
				int idade = Integer.parseInt(JOptionPane.showInputDialog("Digite a idade: "));
				String cidade = JOptionPane.showInputDialog("Digite a cidade: ");
				Pessoa p = new Pessoa(name, idade, cidade);
				listaInfo.add(p);
			}
			sn = JOptionPane.showInputDialog("Deseja ADICIONAR informações de mais pessoas?");
			sn.toUpperCase();
			if (sn.equalsIgnoreCase("SIM")) {
				n = Integer.parseInt(JOptionPane.showInputDialog("Deseja adicionar informacoes de quantas pessoas? "));
			}
		} while (sn.equalsIgnoreCase("SIM"));
		JOptionPane.showMessageDialog(null,
    								 "Informações armazenadas com sucesso!",
    								 "Parabéns",
    								 JOptionPane.PLAIN_MESSAGE);
    	sn = JOptionPane.showInputDialog("Deseja OBTER informações de alguma pessoa?");
    	int arraysize=0;
    	int y=0;
    	if (sn.equalsIgnoreCase("SIM")) {
  			arraysize = listaInfo.size();
			int z=1;
			for (Pessoa p : listaInfo) {
				JOptionPane.showMessageDialog(null,
    							 		z+" - Nome: "+((Pessoa)listaInfo.get(y)).getName()+", Idade: "+((Pessoa)listaInfo.get(y)).getAge()+", Cidade: "+((Pessoa)listaInfo.get(y)).getCity(),
    							 		"MEMORIZE",
    							 		JOptionPane.PLAIN_MESSAGE);
    			z++;
    			y++;
			}
		}
		JOptionPane.showMessageDialog(null,
    							 	"Programa executado com sucesso!",
    							 	"FIM",
    							 	JOptionPane.PLAIN_MESSAGE);
	}
}