Antes de adicionar um nome por exemplo, que verificar se esse nome ja existe nessa lista…
Se existir, nao adiciono… se não existir, adiciono!
eu pesquisei antes… achei um topico inclusive que o vinny da o código todin de um metodo “Apaga por nome”…
mas na verdade nao consegui adaptar o código…
Como o nosso amigo falou, você pode usar a Collection SET, que como os conjuntos matemáticos, não permite valores duplicados.
Assim teríamos como exemplo:
Set<String> conjuntoNaoDuplicado = new HashSet<String>();
conjuntoNaoDuplicado.add("tiago");
conjuntoNaoDuplicado.add("flavio");
conjuntoNaoDuplicado.add("tiago");
System.out.println("conjuntoNaoDuplicado);
Ao imprimir na tela vc perceberá que só imprimiu 1 "tiago".
Abraços
renamed
Se vc ainda quiser usar ArrayList vc tem duas opções...
:arrow: Usar o método contains da própria interface List. Nesse caso os elementos aparecerão na ordem em que foram inseridos.
publicstaticvoidmain(String[]args){List<String>nomes=newArrayList<String>();Scannersc=newScanner(System.in);for(inti=0;i<10;i++){System.out.print("Digite um nome: ");StringnovoNome=sc.nextLine();if(!nomes.contains(novoNome)){nomes.add(novoNome);}}System.out.println("\nNOMES");for(Strings:nomes){System.out.println(s);}}
:arrow: Ou, se os dados na sua List não precisam seguir a mesma ordem de inserção, vc pode usar a interface Collections.
publicstaticvoidmain(String[]args){List<String>nomes=newArrayList<String>();Scannersc=newScanner(System.in);for(inti=0;i<10;i++){System.out.print("Digite um nome: ");StringnovoNome=sc.nextLine();// A busca binária devolve número negativo caso não encontre o elementoif(Collections.binarySearch(nomes,novoNome)<0){nomes.add(novoNome);// É necessário ordenar os elementos para que a busca binária funcioneCollections.sort(nomes);}}System.out.println("\nNOMES");for(Strings:nomes){System.out.println(s);}}
ok? :wink:
drigo.angelo
O arrayList tem um método contains(Object o) que deve servir pra você.