vc precisa identificar c tem algum igual ? ou nao quer q c repita, caso vc nao queira q nao repita usa o “Set”!!!
lipezin
gostaria de identificar se há algum igual, pq o usuário só pode entrar com o valor caso tenha algum na ArrayList…caso não, retorna false.
rodrigoallemand
Neste caso vc deve negar o código acima…
public boolean setEstado(String _uf){
return !valores.contains(_uf);
}
o contains retorna true se o elemento existir na coleção… se vc quer retornar false caso ele exista, negue o contains…
lipezin
Opa, valeu pessoal! Foi de grande ajuda… antes eu estava em duvida quanto ao contains e o get, mas nao sabia qual usar… hahauhauah
Acho que assim ele roda né?! ^^’
if(valores.contains(_uf)){this.uf=_uf;System.out.println("O estado"+uf+"é válido!");returntrue;}else{System.out.println("Estado brasileiro inválido!"+uf);returnfalse;}
Abs!
T
thingol
No seu caso, use um Set<String> estados = new LinkedHashSet <String>() ou um SortedSet<String> estados = new TreeSet<String>(). Eles têm a interessante propriedade de não aceitarem valores repetidos automaticamente.
No primeiro caso (LinkedHashSet) ele preserva a ordem de inserção, ou seja, se você puser primeiro “SP”, “RJ” e depois os outros estados, permanece nessa ordem. No segundo caso (TreeSet) ele deixa sempre ordenado, ou seja, fica “AC”, “AL”, “AM”, “AP” etc. Não é preciso verificar se o elemento já existe no conjunto.
lipezin
Ah sim, mas no meu caso o que eu precisaria mesmo é que o usuário entrasse com um valor que já existe no ArrayList.
Se existe, blza, “return true;”
Não sei se fui mto claro tbm…rsrs
T
thingol
List tem o método contains (que procura na lista), e Set tem o método contains (que procura no Set) também.
No seu caso o conjunto de estados é minúsculo e é em resposta a uma ação do usuário, então a diferença de desempenho entre um List e um Set é desprezível.