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