【问题标题】:How to filter a Collection dependening on multiple attributes?如何根据多个属性过滤集合?
【发布时间】:2016-01-26 08:16:13
【问题描述】:

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

其中三个对象是 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

如何正确过滤我的收藏?我只想在此 Collection 中拥有在今天 Date 之前具有最高 Date 对象的对象。

【问题讨论】:

    标签: java filter java-8 java-stream


    【解决方案1】:

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

    读到这里,你可以试试这个:

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

    【讨论】:

      猜你喜欢
      • 2014-09-22
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多