如何检查字符串列表是否同时包含某些特定字符串,而不必执行多个包含。
例如:
if (templist.contains("aaa") && templist.contains("bbb")) {
}
答案 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
}