如何检查字符串列表是否同时包含某些特定字符串,而不必执行多个包含.
例如这样的事情:
if (templist.contains("aaa") && templist.contains("bbb")) {
}
Run Code Online (Sandbox Code Playgroud)
List.containsAll功能实际上可以达到你的要求.然而,使用 containsAll与列表类型可以在性能降低作为顺序是O(NK)其中N是列表的元素的数量,K是目标串的数目.尝试使用a HashSet来提高性能:
HashSet<String>set = new HashSet<>(list);
if(set.containsAll(Arrays.asList("asd", "efg")))
// do my job;
Run Code Online (Sandbox Code Playgroud)
因为,HashSet<E>class为基本操作提供了恒定的时间性能(add, remove, contains and size).由于containsAll固有地使用contains函数来查找元素,因此可以预期订单O(N+K)