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

3
我有两个不同的字符串数组。
String[] str1={(ABC),(CDE),(DEF),(FGE),(ERT)};

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

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


1
你是想说 "ABC" 而不是 (ABC) 吗? - Marcelo Cantos
3个回答

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

2

你只需要一个Set(即具有快速contains检查的结构)来处理更大的数组,对于另一个数组,使用List(比如Arrays.asList())也可以不失效率。(最好使用HashSet或TreeSet。如果可以重复使用而不是为每次搜索重新创建它,则效率最高。) - Paŭlo Ebermann
@Paŭlo Ebermann 很好的补充(关于 HashSet 的评论)。虽然对于较大的数组,Set 可能只有好处,但我认为它总体上比 mportiz08 发布的更好,因为对于较小的输入,选择 Set 还是 List 并不重要。 - KyleM

1
你可以在 str1 中搜索每个元素,也可以更高效地排序 str1 并使用二分查找。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接