检查列表是否包含多个元素的便捷方法

时间:2013-12-08 16:19:56

标签: java string list

如何检查字符串列表是否同时包含某些特定字符串,而不必执行多个包含。

例如:

if (templist.contains("aaa") && templist.contains("bbb")) {

}

2 个答案:

答案 0 :(得分:6)

List.containsAll功能实际上可以达到您的要求。但是,将containsAll与列表类型一起使用可能会降低性能,因为顺序为O(NK),其中N是列表元素的数量,K是目标字符串的数量。尝试使用 HashSet 来提高效果:

   HashSet<String>set = new HashSet<>(list);
   if(set.containsAll(Arrays.asList("asd", "efg")))
        // do my job; 

因为,HashSet<E> class为基本操作(add, remove, contains and size)提供常量时间性能。由于containsAll固有地使用contains函数来查找元素,因此订单可以预期为O(N+K)

答案 1 :(得分:4)

您可以使用containsAll

if (templist.containsAll(Arrays.asList("aaa", "bbb"))) {
    // do something
}