[英]Java 8 String Comparison
我有两个字符串列表。 我想检查一个列表中的任何字符串在另一列表中是否可用。 使用了以下失败的方法。
请让我知道更好的方法
List<String> mylist = Arrays.asList(stringArray1);
List<String> items = Arrays.asList(stringArray2);
return mylist.stream().anyMatch(t->items.stream().anyMatch(t::contains));
如果要查找mylist
任何元素是否在items
中存在,则可以首先将items
变成Set
:
Set<String> setOfItems = new HashSet<>(items);
然后,您可以简单地遍历mylist
并检查setOfItems
是否包含任何元素。
mylist.stream().anyMatch(setOfItems::contains);
这使您的O(n * k)
问题降至O(n + k)
,其中n
和k
分别是mylist
和items
的大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.