Pra*_*gam 2 java string arraylist java-8 java-stream
我有两个字符串列表.我想检查一个列表中的任何字符串是否在另一个列表中可用.使用下面的方法失败了.
请让我知道一个更好的方法
List<String> mylist = Arrays.asList(stringArray1);
List<String> items = Arrays.asList(stringArray2);
return mylist.stream().anyMatch(t->items.stream().anyMatch(t::contains));
Run Code Online (Sandbox Code Playgroud)
如果你想找到如果任何元素mylist存在items,你可以先转items成Set:
Set<String> setOfItems = new HashSet<>(items);
Run Code Online (Sandbox Code Playgroud)
然后,您可以简单地迭代mylist并检查是否包含任何元素setOfItems.
mylist.stream().anyMatch(setOfItems::contains);
Run Code Online (Sandbox Code Playgroud)
这使您的O(n * k)问题到O(n + k)这里n和k是的大小mylist和items分别.
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |