Problema com lambda

7 respostas Resolvido
P

Pessoal, estou tendo um problema com essa expressão:

@GetMapping

public ResponseEntity<List> findAll(){

List setores = setServ.findAll();

List colaboradores = colServ.findAll();

List list = new ArrayList() ;
setores.forEach(n->{
			List<Colaborador> colaboradoresFiltrado = new ArrayList<Colaborador>() ;
			System.out.println(n.getId());
			colaboradores.forEach(m->{
				System.out.println(n.getId());

				System.out.println(m.getIdSetor());
				if(n.getId() == m.getIdSetor()){
					colaboradoresFiltrado.add(m);
					System.out.println(colaboradoresFiltrado);

				}
				
			});
			list.add(new ColaboradorSetor(n,colaboradoresFiltrado));
		});
		return ResponseEntity.ok().body(list) ;

}

O if não está funcionando nesse meio e não está adicionando o valor a variável colaboradoresFiltrado. Vocês saberriam como me ajudar?

7 Respostas

darlan_machado

Qual o problema?

P

Foi mal, editei agora.
O if não está funcionando dentro do forEach e não está adicionando o colaborador dentro do colaboradoresFiltrado.

darlan_machado

Esses ids são de que tipo? Objeto ou primitivo?

P

Eles seriam primitivos.

darlan_machado
Solucao aceita

Se são primitivos, a comparação está correta.
Se são objetos wrapper, seria mais aconselhável utilizar o método equals.

P

É, eu precisava usar o método equals, por que são duas strings. Valeu cara, me ajudou bastante, consegui aqui! hehehe

darlan_machado

Por isso a pergunta anterior foi

E você me respondeu

De qualquer maneira, lembre-se:
Quando comparar objetos, procure sempre utilizar equals, salvo em casos onde você não quer comparar o valor, mas, a referência dos mesmos.

Criado 6 de abril de 2018
Ultima resposta 6 de abr. de 2018
Respostas 7
Participantes 2