如何筛选依赖于多个属性的集合



对不起,我不知道如何更好地表达我的问题,所以我想举一个例子。我有一个类的集合,这个集合的每个对象还包含其他类的对象。

其中三个对象是 Date 对象。现在我想过滤我的收藏。假设我首先想获得这三个 Date 对象中的最大值。现在,我想获取集合中每个对象的最高日期,并检查它是否在今天的日期之前。 我希望你明白我的意思。

我想使用 Java 8 Streams API 并过滤我的集合。

List<MyClass> c = new ArrayList<MyClass>();
c = query.getResultList();
c.stream().filter(); // I don't know how to filter this Collection

如何正确过滤我的收藏?我只想在这个集合中拥有在今天的日期之前具有最高日期对象的对象。

我从未使用过它,但是您可以在stream java文档中获得一些帮助:

  • https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html

阅读本文,您可以尝试以下操作:

Calendar today = Calendar.getInstance();
List<MyClass> c = new ArrayList<MyClass>();
c = query.getResultList();
c.stream().filter(w -> today.getTime().compareTo(w.getDate())>0);

最新更新