Tom*_*eck 5 arrays search android contains list
我目前有一份声明
if(Arrays.asList(results).contains("Word"));
Run Code Online (Sandbox Code Playgroud)
我想在.contains参数中添加至少几个术语,但是我觉得在一行上有大量术语是不好的编程习惯.
我的问题是,是否有更合适的方法来存储我想要在.contains参数中的所有值?
谢谢
您可以使用两个列表的交集:
String[] terms = {"Word", "Foo", "Bar"};
List<String> resultList = Arrays.asList(results);
resultList.retainAll(Arrays.asList(terms))
if(resultList.size() > 0)
{
/// Do something
}
Run Code Online (Sandbox Code Playgroud)
但是为了提高性能,最好使用两个交集HashSet:
String[] terms = {"Word", "Foo", "Bar"};
Set<String> termSet = new HashSet<String>(Arrays.asList(terms));
Set<String> resultsSet = new HashSet<String>(Arrays.asList(results));
resultsSet.retainAll(termSet);
if(resultsSet.size() > 0)
{
/// Do something
}
Run Code Online (Sandbox Code Playgroud)
作为旁注,上面的代码检查是否出现任何条款results.要检查结果中是否显示所有术语,只需确保交叉点与术语列表的大小相同:
resultsSet.retainAll(termSet);
if(resultSet.size() == termSet.size())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13423 次 |
| 最近记录: |