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

use*_*911 2 java string list

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

例如这样的事情:

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

}
Run Code Online (Sandbox Code Playgroud)

Sag*_*age 6

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)