Java 8+ Stream: Проверьте, находится ли список в правильном порядке для двух полей моего объекта.JAVA

Программисты JAVA общаются здесь
Anonymous
Java 8+ Stream: Проверьте, находится ли список в правильном порядке для двух полей моего объекта.

Сообщение Anonymous »

Название может быть немного расплывчатым, но вот что я имею (в приватизированном коде): < /p>

Класс с некоторыми полями, включая большую значимость и дату: < /p>

Код: Выделить всё

class MyObj{
private java.math.BigDecimal percentage;
private java.util.Date date;
// Some more irrelevant fields

// Getters and Setters
}
< /code>

В другом классе у меня есть список этих объектов (то есть java.util.list  mylist < /code>). Теперь я хочу поток Java 8, чтобы проверить, находится ли список в правильном порядке как дат, так и в процентах для моего валидатора. < /P>

Например, следующий список будет быть правдой: < /p>

[ MyObj { percentage = 25, date = 01-01-2018 },
MyObj { percentage = 50, date = 01-02-2018 },
MyObj { percentage = 100, date = 15-04-2019 } ]
< /code>

Но этот список был бы ложным, потому что процент не в правильном порядке: < /p>

[ MyObj { percentage = 25, date = 01-01-2018 },
MyObj { percentage = 20, date = 01-02-2018 },
MyObj { percentage = 100, date = 15-04-2019 } ]
< /code>

И этот список также будет ложным, потому что даты не в правильном порядке: < /p>

[ MyObj { percentage = 25, date = 10-03-2018 },
MyObj { percentage = 50, date = 01-02-2018 },
MyObj { percentage = 100, date = 15-04-2019 } ]
Одним из возможных решений может создать пары , как это, а затем с использованием! > . Но я действительно не хочу создавать класс Pair только для этой цели, если это возможно. > или что -то, что можно зацикнуть по парам myobj , чтобы проверить их? Каково лучшее подход здесь, чтобы проверить, будут ли все даты и проценты myobj < /code> в моем списке в правильном порядке с использованием потока Java 8? < /P>

Другое Возможность, возможно, сортирует список по дате, а затем проверить, находятся ли все в процентах, если это проще, чем проверка обеих областей, - это одно и то же время. Та же проблема с сравнением пар myobj < /code> для процента все еще остается, хотя. < /P>

(PS: я буду использовать его для com.vaadin.server. SerializablePredicate varidator , и я предпочитаю java 8 Lambda, потому что я также использовал некоторые для других валидаторов, так что это будет в большей степени в соответствии с остальной частью кода Java 8 лямбда - это скорее предпочтение, чем требование в моем вопросе, однако.)

Подробнее здесь: https://stackoverflow.com/questions/520 ... f-my-objec

Вернуться в «JAVA»