У меня есть список объектов с именем свойства, компанией и датой.Я хочу отфильтровать этот список, чтобы получить самую последнюю комбинацию имя + компания, основанную на дате.Пример данных:
id | name | company | date
----------------------
1 | bob | A | 01/2017
2 | bob | A | 01/2016
3 | bob | A | 01/2015
4 | bob | B | 03/2017
5 | sal | B | 04/2018
6 | sue | A | 01/2016
7 | sue | A | 01/2017
8 | sue | A | 01/2015
Желаемым результатом должен быть список, содержащий идентификаторы: 1, 4, 5 и 7.
Я мог бы просмотреть каждый элемент в моем списке и добавить его вновый список, если комбинация имя + компания не существует, и если она существует, проверьте дату, чтобы увидеть, следует ли заменить существующую.Но я чувствую, что должен быть более простой способ сделать это с помощью потоков и фильтров.Я просто не могу думать о том, как.Поиск предоставляет методы, такие как Collections.max, но я хочу список максимума, основанный на комбо.
Это объекты, созданные Java, а не постоянные объекты, в противном случае я бы сделал что-то вроде этого: GROUP BY с MAX (DATE) .Но я хочу сделать то же самое.
Возможно ли это сделать с помощью фильтра или мой единственный вариант - длинный маршрут?