0

I have a list which contains many token requestors but ID is unique and filter will returns just one object.

for (TokenRequestor requestor : tokenRequestorList) {
    if (requestor.getId().equals(tokenRequestor.getId())) {
        System.out.println("This object is unique!");
    }
}

I try write this code in Java 8:

tokenRequestorList.stream().filter(tr -> tr.getId()
        .equals(tokenRequestor.getId())).collect(Collectors.toList());

How I can filter to return a TokenRequestor? This list will be contain 1 element.

E.g:

TokenRequestor myObject = tokenRequestorList.stream()
        .filter(tr -> tr.getId().equals(tokenRequestor.getId()))....;
shmosel
  • 49,289
  • 6
  • 73
  • 138
Daniela Morais
  • 2,125
  • 7
  • 28
  • 49

1 Answers1

3
tokenRequestorList.stream()
    .filter(tr -> tr.getId().equals(tokenRequestor.getId()))
    .findAny()
    .orElse(null);

This will return any TokenRequestor instance matching the filter (in your case it will be unique), or null is nothing matches the filter.

Roman Puchkovskiy
  • 11,415
  • 5
  • 36
  • 72