List / Coleção de objetos

Pessoal!

to com um problema ± assim:

estou adaptando esse codigo abaixo para que ele armazene o resultado em uma list para que depois eu possa usar esses resultados.

ta ai o codigo:


public static List <Estacao> lerArquivo() {

		try {
			//cria a variavel linha do tipo String
			String linha;
			//linha recebe o conteúdo q foi lido no arquivotexto
			linha = arquivoTexto.readLine();
			//Criamos um vetor de Strings usando o split que pega um bloco de texto até q encontre um espaco
			String[] numeros = linha.split(" ");
			//transforma os numeros lidos no arquivo de acordo com a sua posição no array 0 - 1
			int numEstacoes = Integer.parseInt(numeros[0]);
			int numLinhas = Integer.parseInt(numeros[1]);
			//Se o numro de estacoes for igual a 0 retorna nulo
			if (numEstacoes == 0 && numLinhas == 0) {
				return null;
			}
			// cria um objeto list do tipo Estacão(que é uma classe que criamos) chamada conjEstaçoes 
			List<Estacao> conjEstacoes = new ArrayList<Estacao>();
			//System.out.println("Instancando estacoes! ");
			
			// um for que irá criar a quantidade de estaçoes q foi lida no arquivo 
			for (int i = 0; i < numEstacoes; i++) {
				//cria um objeto q representa uma estação  
				Estacao estacao = new Estacao();
				// da um numero pra ela partindo do 1
				estacao.setNumEstacao(i + 1);
				//adiciona ao list
				conjEstacoes.add(estacao);

			}
			//cria  variáveis
			int numEstOrigem = 0;
			int numEstDestino = 0;
			int calcEstOrigem;
			int calcEstDestino;
			int calcResultado;
			
			//System.out.println("Criando linhas! ");
			
			//um for que irá ler as próximas linhas de acordo com o numero de linhas que informa o arquivo
			for (int x = 1; x <= numLinhas; x++) {
				//le a linha do arquivo
				linha = arquivoTexto.readLine();
				//separa os strings
				numeros = linha.split(" ");
				//converte em inteiros
				numEstOrigem = Integer.parseInt(numeros[0]);
				numEstDestino = Integer.parseInt(numeros[1]);
				
				//passando como parametro o numero de origem e o a Lista de estacoes
				Estacao estacaoOrigem = Estacao.getEstacaoDaLista(numEstOrigem,
						conjEstacoes);
				//passando como parametro o numero de destino e o a Lista de estacoes
				Estacao estacaoDestino = Estacao.getEstacaoDaLista(numEstDestino,
						conjEstacoes);
				
				//associa as Estacoes com  suas ligaçoes
				estacaoOrigem.addEstacaoVizinha(estacaoDestino);
				estacaoDestino.addEstacaoVizinha(estacaoOrigem);
				
				
				calcEstDestino = numEstDestino;
				calcEstOrigem = numEstOrigem;
				
				calcResultado = calcEstDestino - calcEstOrigem;
				
				System.out.print(calcEstDestino);
				System.out.print("-");
				System.out.print(calcEstOrigem);
				System.out.print("=");
				System.out.print(calcResultado);
				System.out.println("");
				
				
			}
			//retorna o conjunto de estacoes
			return conjEstacoes;

		} catch (FileNotFoundException fnf) {

			System.out.println("arquivo nao encontrado");
			fnf.printStackTrace();
		} catch (IOException ioe) {

			System.out.println("erro de IO");
			ioe.printStackTrace();
		}
		return null;

	}

ele tem como resultado impresso assim :

2-1=1
3-1=2
4-2=2
3-2=1
4-3=1
5-3=2
6-5=1
3-6=-3

como eu faço para inserir esses valores em um list e depois em outra classe poder extrai - los?

não entendi muito bem esse conceito de como eu tiro e coloco em um list ou array list…

Para inserir o valor em uma lista:

NomeDaList.add(valor);

Para acessas esses valores em outra classe vc faz o seguinte,
manda retornar essa lista:

return NomeDaList;

E para acessar o valor é só chamar essa função, que essa lista estará disponível…

e para criar uma lista nova?

List Exemplo = new ArrayList();

ou para um tipo específico, por exemplo List de String

List<String> Exemplo = new ArrayList();

mais a list so aceita 1 valor, ou seja, ela fica assim

[1]
[2]
[2]
[1]
[1]
[2]
[1]
[3]

queria inserir nela 3 valores

2 1 1
3 1 2
4 2 2
3 2 1
4 3 1
5 3 2
6 5 1
6 3 3

edit: tem como?

Já que são vários valores utilize uma Array Multimencional ( Matriz )

Por exemplo para 3 valores

int [] [] [] nome;

da erro:

Illegal modifier for the variable lista; only final is permitted" em static List <Integer[]> lista = new ArrayList<Integer[]>();

[code] int [] [] [] lista;

			static List <Integer[]> lista = new ArrayList<Integer[]>();
			
				
			
			 Integer[] i = new Integer[3];
                i[0] = calcEstDestino;
                i[1] = calcEstOrigem;
                i[2] = calcResultado;
                
                lista.add(i);
			
                
                Integer[] retorno = lista.get(0);
                System.out.println(retorno[0]);

[/code]

Voce deixou sua lista estatica no meio de um metodo?

Modificadores de acesso e static só podem ser utilizados dentro do escopo da classe.

hum…
verdade…

agora meu array list é assim:


	static List <Integer[]> lista = new ArrayList<Integer[]>();

				 Integer[] i = new Integer[3];
				 
				 
				 
			        i[0] = calcEstDestino;
			        i[1] = calcEstOrigem;
			        i[2] = calcResultado;
			        
			        lista.add(i);
				
			        
			        Integer[] retorno = lista.get(0);
			        System.out.println(retorno[0]);

ficando dessa maneira…
2 1 1
3 1 2
4 2 2
3 2 1
4 3 1
5 3 2
6 5 1
6 3 3

agora como faço para ler os arquivos?