Java 8字符串比较

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 8字符串比较相关的知识,希望对你有一定的参考价值。

我有两个字符串列表。我想检查一个列表中的任何字符串是否在另一个列表中可用。使用下面的方法失败了。

请让我知道一个更好的方法

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),其中nk分别是mylistitems的大小。

以上是关于Java 8字符串比较的主要内容,如果未能解决你的问题,请参考以下文章