Я работаю с List
из Person
объектов. Я пытаюсь быстро идентифицировать и вернуть все Person
с максимальной датой.Проблема с Java и максимальным значением
Например:
Persons:[
{
id: 1
submitDate: 2010-01-01
name : john Smith
},
{
id: 1
submitDate: 2011-01-01
name : john Smith
},
{
id: 2
submitDate: 2011-01-02
name : jason Doe
},
{
id: 1
submitDate: 2012-01-01
name : john Smith
},
{
id: 1
submitDate: 2013-01-01
name : john Smith
},
{
id: 2
submitDate: 2013-01-02
name : jason Doe
}
]
Я ищу способ, в Java, чтобы вернуть следующее (Макс submitDate
значение):
Persons: [
{
id: 1
submitDate: 2013-01-01
name : john Smith
},
{
id: 2
submitDate: 2013-01-02
name : jason Doe
}
]
Любые мысли о том, как этого достичь?
================================================================================================================================== ========================== Я пробовал:
List<Person> personList = Lists.newArrayList();
getPersonList().stream()
.map(this.setSource)
.max(Comparator.comparing(Person::getSubmitDate))
.map(personList::add);
Однако он возвращает один Person
записи, а не максимальной submitDate для каждогоPerson
Для поиска в будущем и записи используйте слово 'distinct', если вы хотите устранить повторяющиеся значения. Кроме того, учитывая данные вашего примера, я не вижу, что вы идете на «максимум», я вижу только устранение дубликатов, чтобы сделать отдельный список. Измените свой вопрос, чтобы уточнить. Возможный дубликат: [Java - Distinct List of Objects] (http://stackoverflow.com/q/1019854/642706) –
@BasilBourque, если вы читаете выше, я указываю «Я пытаюсь быстро идентифицировать и вернуть все« Личность » 'с максимальной датой". Я согласен, что мог бы изначально написать свой вопрос, объяснив, что хочу получить максимальную дату для каждого человека (на основе идентификатора). Однако я вернулся и объяснил себя в своем «редактировании». – Dan
Я был неверным в последней части моего комментария выше о том, что вы не выполняете «максимум». Неправильные даты, когда я смотрел только на месяц, но не на год. Возможно, вам нужно немного отредактировать части за месяц-месяц значений примера, чтобы другие не делали ту же ошибку. –