ArrayList

Olá pessoal,

Tenho este método e gostaria de saber como eu faço para comparar se há um valor no ArrayList(já criado) com um parametro passado(no caso, _uf):

[b]//inclui estado	
public boolean setEstado(String _uf){
	
	ArrayList<String> valores = new ArrayList<String>();
		valores.add("AC");
		valores.add("AL");
		valores.add("AM");
		valores.add("AP");
		valores.add("BA");
		valores.add("CE");
		valores.add("DF");
		valores.add("ES");
		valores.add("GO");
		valores.add("MA");
		valores.add("MG");
		valores.add("MS");
		valores.add("MT");
		valores.add("PA");
		valores.add("PB");
		valores.add("PE");
		valores.add("PI");
		valores.add("PR");
		valores.add("RJ");
		valores.add("RN");
		valores.add("RO");
		valores.add("RR");
		valores.add("RS");
		valores.add("SC");
		valores.add("SE");
		valores.add("SP");
		valores.add("TO");

                                            this.uf = _uf;
		}[/b]

Muito grato.

public boolean setEstado(String _uf){ 
	return valores.contains(_uf);
}

Caso valores esteja visivel para este método…

vc precisa identificar c tem algum igual ? ou nao quer q c repita, caso vc nao queira q nao repita usa o “Set”!!!

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.

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…

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!");
	return true;
}else{
	System.out.println("Estado brasileiro inválido!" + uf);
	return false;
}

Abs!

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.

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 :confused:

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.

Okay, muito obrigado pela ajuda ! :smiley:

[]'s