是否可以检查Stream是否包含所有集合元素?

问题描述 投票:0回答:1

例如,我需要类似的东西:

Collection<String> collection = /* ... */;
Stream<Object> stream = /* ... */;
boolean containsAll = stream.map(Object::toString).containsAll(collection);

当然,我可以使用Collection方法和调用collect()将流的所有元素累积到另一个Collection.containsAll()中,但是如果流太大并且处理所有元素效率低下怎么办?

java stream
1个回答
0
投票

如果您使用的是Java 9+,则可以这样做


0
投票

[Stream的大小,如果不包含Collection的所有元素,则必须处理其所有元素。


0
投票
boolean containsAll = stream.map(Object::toString)
    .filter(Collection::contains)
    .distinct()
    .count() == collection.size();
© www.soinside.com 2019 - 2024. All rights reserved.