正确过滤ArrayList

时间:2015-08-25 14:14:16

标签: java arraylist

我有一个ArrayList<Slot>,这个Slot类有一个Upload类型的公共属性,它具有不同的状态。我想过滤这些状态,因此只能从slots.upload.currentStatus等于某事的列表中检索插槽。

尝试这样的事情

Collection<Slot> filtered = Collections2.filter(this.slots, ?????? ));
你可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

这是一个简单的例子,它显示了一种使用Stream在Java 8中过滤集合(在本例中为List,就像你的一样)的方法(可以找到有关使用Streams的更多信息{ {3}}):

public static void main(String[] args) {
    List<Slot> slots = Arrays.asList(new Slot(Upload.YAY), new Slot(Upload.NAY),
            new Slot(Upload.YAY), new Slot(Upload.YAY));

    List<Slot> yaySlots = slots.stream()
            .filter(slot -> slot.upload == Upload.YAY)
            .collect(Collectors.toList());
}

在您的情况下,过滤器可能类似于:

slot -> slot.upload.currentStatus.equals(INTERESTING_STATUS)