ArrayList

[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;
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);




}

}[/code]

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

linha 56 e 57

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

Axo q esta aki o erro!

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.

Algumas correções:

[code]public static void main(String[] args) {
ArrayList cli = new ArrayList();
ArrayList cid = new ArrayList();
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);
}[/code]

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?

[quote=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?[/quote]

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?

[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?

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