Java 如何检查两个字符串的列表?

Java 如何检查两个字符串的列表?,java,string,compare,Java,String,Compare,以OOP Java为例,由于我对该语言完全陌生,而且还不知道它提供了许多工具,我发现自己在黑暗中摸索简单问题的解决方案,我可以对这些问题进行硬编码,但我觉得使用Java.util有更简单的方法来实现这一点 假设我有一个字符串列表 String[] stringOne = {"a","b","c", "potato"}; String[] stringTwo = {"potato", "13"}; 如何检查stringTwo中的任何给定项在stringOne中出现多少次?反之亦然。我不希望每次遇

以OOP Java为例,由于我对该语言完全陌生,而且还不知道它提供了许多工具,我发现自己在黑暗中摸索简单问题的解决方案,我可以对这些问题进行硬编码,但我觉得使用
Java.util
有更简单的方法来实现这一点

假设我有一个字符串列表

String[] stringOne = {"a","b","c", "potato"};
String[] stringTwo = {"potato", "13"};
如何检查
stringTwo
中的任何给定项在
stringOne
中出现多少次?反之亦然。我不希望每次遇到这个问题时都进行双循环(或使用双循环方法)

现在我可以使用
Collections.frequency()
并且只循环一次,但有没有更简单的方法?谢谢

假设我有一个字符串列表

String[] stringOne = {"a","b","c", "potato"};
String[] stringTwo = {"potato", "13"};
这些是“数组”,而不是“列表”<代码>数组。asList(stringOne)是
stringOne
引用的数组的列表包装器

如何检查stringTwo中的任何给定项在stringOne中出现的次数

将为您提供这两者中的元素集

使用A而不是集合的类似方法将获得计数

retainAll(收集目录)
删除包中不在给定集合中的任何成员,尊重基数。也就是说,如果给定集合coll包含给定对象的n个副本,并且包有m>n个副本,则从包中删除m-n个副本。此外,如果e是包中的一个对象,但
!coll.包含(e)
,然后删除
e
及其任何副本

集合类中使用的等价概念是由
Object.equals(Object)
定义的,它
java.lang.String
覆盖以按字典进行比较

如果需要返回数组中的结果,请尝试
myBag.toArray(新字符串[0])
,它将内容转储到字符串中。文档中对该参数进行了解释,但简而言之,它是一个类型提示,可以解决Java的数组变异问题

new HashSet(Arrays.asList(stringOne)).retainAll(Arrays.asList(stringTwo))