Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,如何在另一个字符串数组中搜索字符串数组?_Java_Arrays_Search - Fatal编程技术网

在java中,如何在另一个字符串数组中搜索字符串数组?

在java中,如何在另一个字符串数组中搜索字符串数组?,java,arrays,search,Java,Arrays,Search,我有两个不同的字符串数组 String[] str1={(ABC),(CDE),(DEF),(FGE),(ERT)}; String[] str2={(ABC),(FGE)}; 我想知道str1是否有str2的所有成员?我如何在str1中搜索str2?您可以在str1中搜索str2的每个元素。或者,更有效的方法是:对str1排序,并使用二进制搜索。为包含数组元素的每个数组创建一个Set对象。然后使用Set类的containsAll方法检查一个集合是否包含另一个集合中的所有元素 Arrays.

我有两个不同的字符串数组

String[] str1={(ABC),(CDE),(DEF),(FGE),(ERT)};

String[] str2={(ABC),(FGE)};

我想知道str1是否有str2的所有成员?我如何在str1中搜索str2?

您可以在str1中搜索str2的每个元素。或者,更有效的方法是:对str1排序,并使用二进制搜索。

为包含数组元素的每个数组创建一个Set对象。然后使用Set类的containsAll方法检查一个集合是否包含另一个集合中的所有元素

Arrays.asList(str1).containsAll(Arrays.asList(str2));

你的意思是说
“ABC”
,而不是
(ABC)
,等等?对于较大的数组,你只需要一个
集合(即一个快速
包含
检查的结构),而对于另一个数组,一个
列表(如
数组。asList()
)也可以工作而不会降低效率。(它应该是一个HashSet或TreeSet。如果您可以重用它,而不是为每次搜索重新创建它,那么效率最高。)@Paŭlo Ebermann Good addition(关于HashSet的评论)。虽然集合可能只对较大的数组有好处,但我认为它总体上比发布的mportiz08更好,因为集合或列表的选择对于较小的输入并不重要。