我有一个ArrayList<Slot>
,这个Slot
类有一个Upload
类型的公共属性,它具有不同的状态。我想过滤这些状态,因此只能从slots.upload.currentStatus
等于某事的列表中检索插槽。
尝试这样的事情
Collection<Slot> filtered = Collections2.filter(this.slots, ?????? ));
你可以帮忙吗?
答案 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)