Dúvida Collections

6 respostas
ricardocomp
Olá galera, estou com uma dúvida será q alguém podia me ajudar? Eu estou querendo construir um método para verificar se o login passado por parâmetro no método getUser se existi algum usuário com esse login na minha lista listDB e retornar esse Usuário, o que devo fazer? O código segue abaixo:
public class DataBase {
	
	private List<User> listDB = new ArrayList<User>();
	
	public DataBase() {
		//listDB.add(new User());
		User user1 = new User();
		user1.setId(1);
		user1.setLogin("ricardo");
		user1.setPassword("1234");
		user1.setEmail("[email removido]");
		this.listDB.add(user1);
		
		User user2 = new User();
		user2.setId(2);
		user2.setLogin("marcos");
		user2.setPassword("5678");
		user2.setEmail("[email removido]");
		this.listDB.add(user2);
	}
	
	public User getUser(String login) {
		return null;
	}
	
}
???

6 Respostas

phpinheiro
public User getUser(String login) {  
        for(usuario : listDB){
               if(usuario.getLogin().equals(login)){
                     return usuario;
               }
        } 
        return null;
    }

nem testei…veja se funciona.

shoko

http://java.sun.com/javase/6/docs/api/

Verifique o método contains, ele resolve o seu problema.

ricardocomp

Jóia phpinheiro?
Então eu estou tentando
fazer o q vc disse.
Mas o problema é que para
eu fazer foreach eu preciso
usar um objeto local do tipo user,
ñ é isso? Mas os meus usuários cadastrado
estão no meu construtor. Eu preciso
varrer a listDB para os usuários que eu
cadastrei no meu construtor. vc sabe como
eu devo fazer?

Obrigado pela ajuda.

ricardocomp

BLz shoko?
Eu já tentei fazer alguma
coisa com o método contains,
mas não deu muito certo.
O contains é um método booleano.

Obrigado pela ajuda shoko.

Abraço.

phpinheiro

Então ricardo…seu método getUser deverá possuir um objeto local tipo User pra retorná-lo.

Fiz as duas classes aqui e funcionou perfeitamente. Quando testei vi que faltava a declaração local mesmo.

Veja só:

public User getUser(String login) {      
    	for(User usuario:listDB){  
				if(usuario.getLogin().equals(login)){  
                         return usuario;  
                   }  
            }   
            return null;  
     }

Se quiser, posso postar todas as classes que fiz pra testar aqui.

ricardocomp

Valeu phpinheiro pela ajuda,
muito obrigado. Agora deu certo aqui! =)
Precisando também e eu podendo ajudar.
Nós estamos aí.

Abraço.

Criado 15 de dezembro de 2008
Ultima resposta 16 de dez. de 2008
Respostas 6
Participantes 3