Setup and question
I have a stream over a simple Java data class like:
class Candidate{
private Long id;
private String fullName;
private String job;
private String adress;
}
I would like to filter my stream by two properties:
- remove all duplicates by
job - but keep everyone with
adress"Italy"regardless ofjob
Example
Consider an example data set like
| ID | fullName | JOB | adress |
|---|---|---|---|
| 1 | Peter Bright | IT Engineer | Italy |
| 2 | Patrick Manon | Electronics engineer | Spain |
| 3 | Bob Jina | IT Engineer | Suisse |
| 4 | Alexander Layo | Security Engineer | UK |
or in Java:
Candidate c1 = new Candidate(1,"Peter Bright","IT Engineer","Italy");
Candidate c2 = new Candidate(2,"Patrick Manon","Electronics engineer","Spain");
Candidate c3 = new Candidate(3,"Bob Jina","IT Engineer","Suisse");
Candidate c4 = new Candidate(4,"Alexander Layo","Security Engineer","UK");
Stream<Candidate> candidates = Stream.of(c1, c2, c3, c4);
I would like to filter the stream in a way that the outcome is:
| ID | fullName | JOB | ADSRESS |
|---|---|---|---|
| 1 | Peter Bright | IT Engineer | Italy |
| 2 | Patrick Manon | Electronics engineer | Spain |
| 4 | Alexander Layo | Security Engineer | UK |
Note that Bob Jina got removed since IT Engineer was already there.
In the case of there is duplicates candidates all from Italy we need to keep all of them