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

标签 java string list

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

例如这样的事情:

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

}

最佳答案

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)

关于java - 检查列表是否包含多个元素的便捷方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20455654/

相关文章:

java - 将参数传递给从另一个方法获取的方法?

string - 如何在 Windows 命令行上删除字符串中的前缀?

java - 为什么每次继续 while 循环时我的变量都会被重置?

python - 如何在python中使用切片运算符提取除中间部分之外的字母?

java - 主要 Activity 未正确引用外部 java 类

java - oracle.jdbc.driver.OracleConnection 的类转换异常

java - 反序列化时如何找到对象所属的正确子类?

c# - C# 中的子字符串 IndexOf

python 查找并匹配精确的字符串

javascript - 尝试根据前一个函数的结果显示图像