ArrayList

7 respostas
fjucks
package crud;

import java.io.*;
import java.util.Scanner;
import java.util.ArrayList;


public class Main {
    public static void main(String[] args) {
      ArrayList<Cliente> cli = new ArrayList<Cliente>();
      ArrayList<Cidade> cid = new ArrayList<Cidade>();
      Cliente cliente;
      Cidade cidade = new Cidade();

      BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
      int opcao=0;
      String nome="";
      do{
         Cidade.Menu();
         Cliente.Menu();
         System.out.println("Escolha uma opção: ");
         try{
           opcao = Integer.parseInt(entrada.readLine());
           switch (opcao){
               case 1:
                      cidade = new Cidade();
                      System.out.println("Informe o nome da Cidade");
                      nome=entrada.readLine();
                      cidade.setNome(nome);
                      cid.add(cidade);
                      break;
               case 2:
                      System.out.println("Nome da cidade que deseja remover: ");
                      nome = entrada.readLine();
                      for(Cidade cidades : cid){
                          if(cidades.getNome().equals(nome)){
                              cid.remove(cid.indexOf(cidade));
                          break;
                          }
                      }
                      break;
               case 3:
                      System.out.println("Informe o nome da cidade que deseja Atualizar");
                      nome = entrada.readLine();
                      for(Cidade cidades : cid){
                          if(cidades.getNome().equals(nome)){
                          System.out.println("Informe o novo nome da cidade: ");
                          nome = entrada.readLine();
                          cidades.setNome(nome);
                          }else{
                               System.out.println("Cidade não encontrada....");
                          }
                      }
                      break;
               case 4:
                        for (Cidade cidades : cid){
                            System.out.println("Nome da cidade: " + cidade.getNome());
                        }
                        break;

               case 5:
               case 6:
               case 7:
               case 8:
      }


      }catch(IOException e ){
      System.out.println(e);
      }
      }while(opcao<15);




    }

}

PESSOAL uso o array list mas nao consigo atualizar nem exibir minhas cidades!!! alguem sabe qual pode ser o erro desse programa?

7 Respostas

guisantogui

linha 56 e 57

"for (Cidade cidades : cid){

System.out.println("Nome da cidade: " + cidade.getNome());

} "

Axo q esta aki o erro!

J

Quando você quer atualizar um arraylist, deve trabalhar com dois, um para percorrer a lista, e outro para atualizar a lista, depois você pega o atualizado e grava no que você percorria a lista.

marcelo.bellissimo

Algumas correções:

public static void main(String[] args) {
		ArrayList<Cliente> cli = new ArrayList<Cliente>();
		ArrayList<Cidade> cid = new ArrayList<Cidade>();
		Cliente cliente;
		Cidade cidade = new Cidade();
		boolean found = false;

		BufferedReader entrada = new BufferedReader(new InputStreamReader(
				System.in));
		int opcao = 0;
		String nome = "";
		do {
			found = false; // flag
			Cidade.Menu();
			Cliente.Menu();
			System.out.println("Escolha uma opção: ");
			try {
				opcao = Integer.parseInt(entrada.readLine());
				switch (opcao) {
				case 1:
					cidade = new Cidade();
					System.out.println("Informe o nome da Cidade");
					nome = entrada.readLine();
					cidade.setNome(nome);
					cid.add(cidade);
					break;
				case 2:
					System.out.println("Nome da cidade que deseja remover: ");
					nome = entrada.readLine();
					for (Cidade cidades : cid) {
						if (cidades.getNome().equals(nome)) {
							found = true;
							cid.remove(cid.indexOf(cidades));
							break;
						}
					}
					if (!found) System.out.println("Cidade não encontrada.");
					break;
				case 3:
					System.out.println("Informe o nome da cidade que deseja Atualizar");
					nome = entrada.readLine();
					for (Cidade cidades : cid) {
						if (cidades.getNome().equals(nome)) {
							found = true;
							System.out.println("Informe o novo nome da cidade: ");
							nome = entrada.readLine();
							cidades.setNome(nome);
						}
					}
					// caso nao encontre:
					if (!found) System.out.println("Cidade não encontrada....");
					break;
				case 4:
					for (Cidade cidades : cid) {
						System.out.println("Nome da cidade: " + cidades.getNome());
					}
					break;

				case 5:
				case 6:
				case 7:
				case 8:
				}

			} catch (IOException e) {
				System.out.println(e);
			}
		} while (opcao < 15);
	}
fjucks

valeu pessoal deu certo aqui, mas ainda ficou uma duvida!!!]

for (Cidade cidades : cid){ System.out.println("Nome da cidade: " + cidades.getNome()); }

esse codigo faz um loop no tamanho da minha array?
porque essa instancia cidades? ela eh o que determina o que?
porque esta declarada assim Cidade cidades : cid, isso é só um padrão para fazer o loop em meu array?
nao posso colocar a instancia de cidade no lugar de cidades?

marcelo.bellissimo

fjucks:
valeu pessoal deu certo aqui, mas ainda ficou uma duvida!!!]

for (Cidade cidades : cid){ System.out.println("Nome da cidade: " + cidades.getNome()); }

esse codigo faz um loop no tamanho da minha array?
porque essa instancia cidades? ela eh o que determina o que?
porque esta declarada assim Cidade cidades : cid, isso é só um padrão para fazer o loop em meu array?
nao posso colocar a instancia de cidade no lugar de cidade?

Esse loop se chama “for each” (para cada)… os dois pontos significam “in” (em), e lê-se dessa maneira:
for each Cidade cidades in cid… (para cada objeto Cidade cidades na lista cid…)

Ele itera por cada objeto Cidade na sua lista cid, e para cada item dessa lista ele cria uma váriavel chamada cidades para representar o item atual, esse nome é voce que escolhe… poderia ser qualquer outra coisa…

Colocar a instancia de cidade no lugar não faria sentido, pois ela não é um dos itens da lista, entendeu?

fjucks

[code]package crud;

import java.io.*;
import java.util.Scanner;
import java.util.ArrayList;

public class Main {
public static void main(String[] args) {
ArrayList cli = new ArrayList();
ArrayList cid = new ArrayList();
Cliente cliente = new Cliente();
Cidade cidade = new Cidade();

BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
int opcao=0,c=0;
String nome="";
do{
Cidade.Menu();
Cliente.Menu();
System.out.println("Escolha uma opção: ");
try{
opcao = Integer.parseInt(entrada.readLine());
switch (opcao){
case 1:
cidade = new Cidade();
System.out.println("Informe o nome da Cidade");
nome=entrada.readLine();
cidade.setNome(nome);
cid.add(cidade);
break;

case 2:
System.out.println("Nome da cidade que deseja remover: ");
nome = entrada.readLine();
for(Cidade cidades : cid){
if(cidades.getNome().equals(nome)){
cid.remove(cid.indexOf(cidade));
break;
}else{
System.out.println("Cidade não encontrada....");
}
}
break;

case 3:
System.out.println("Informe o nome da cidade que deseja Atualizar");
nome = entrada.readLine();
for(Cidade cidades : cid){
if(cidades.getNome().equals(nome)){
System.out.println("Informe o novo nome da cidade: ");
nome = entrada.readLine();
cidades.setNome(nome);
}else{
System.out.println("Cidade não encontrada....");
}
}
break;

case 4:
for (Cidade cidades : cid){
System.out.println("Nome da cidade: " + cidades.getNome());
}
break;

case 5:
cliente = new Cliente();
System.out.println("Informe o nome do cliente: ");
nome = entrada.readLine();
cliente.setNome(nome);
System.out.println("Informe o nome da cidade do cliente: ");
nome= entrada.readLine();
cidade.setNome(nome);

for(Cidade cidades : cid){
if(cidades.getNome().equals(nome)){
cliente.setCidade(cidade);
c=1;
}else if(c==0){
System.out.println("Cidade não cadastrada");
}
}
cidade.setNome(nome);

case 6:
case 7:
case 8:
}

}catch(IOException e ){
System.out.println(e);
}
}while(opcao<15);

}

}
[quote]

pessoal o meu arrayList, ele nao remove a cidade certa, remove so a ultima a ser colocada, o que sera qu eh isso?

marcelo.bellissimo

Você nem testou o código que eu coloquei ali em cima, né?
Testa ele… ele está todo corrigido…

Criado 16 de abril de 2010
Ultima resposta 18 de abr. de 2010
Respostas 7
Participantes 4