-1
Принимая во внимание следующие структуры данных:Как сделать несколько находок с потоком Java 8?
Класс Адрес содержит:
AddressId primary key
Type can be "MAIL" or "LEGAL"
Address text field containing address
PersonId foreign key to another Person Class
Сценарий 1 псевдокод:
List<Address> addresses = new List<Address>();
addresses.add(new Address(1,"MAIL","123 Main St",1));
addresses.add(new Address(2,"LEGAL","456 Main St",1));
//In this scenario I want the "MAIL" record to be returned
addresses.stream().filter(e->e.getType().equals("MAIL")).findFirst().orElse(...);
Сценарий 2 псевдокод:
List<Address> addresses = new List<Address>();
addresses.add(new Address(1,"LEGAL","891 Main St",2));
//In this scenario I want the "LEGAL" record to be returned
addresses.stream().filter(e->e.getType().equals("MAIL")).findFirst().orElse(...);
Сценарий 3 псевдо код:
List<Address> addresses = new List<Address>();
//In this scenario null or empty optional will be returned
addresses.stream().filter(e->e.getType().equals("MAIL")).findFirst().orElse(...);
Очень полезно, если кто-то может помочь с потоковой линией кода выше, которая может обрабатывать все 3 сценария.
Я не уверен, что понимаю Сценарий 2: почему фильтрация на MAIL должна привести к ЮРИДИЧЕСКОМ адресу? Кроме того, что не так с вашим текущим кодом? – Tunaki
Просто создайте метод, который принимает тип и значение по умолчанию –
Что значит «обрабатывать все три сценария»? Сделайте все три сразу? Выберите один из трех? –