Java 快速确定列表是否至少包含数组中包含的一项的方法
我有一个Java 快速确定列表是否至少包含数组中包含的一项的方法,java,arrays,list,Java,Arrays,List,我有一个列表a和一个字符串[]b。如果数组中至少有一个列表成员,我希望返回true。就这点而言,我处理的是列表和字符串[],这并不重要。两者都可以是列表 编辑 Java8似乎为您提供了一种方法。更基本的方法呢 谢谢,没有Java 8流的单向: public boolean containsAtLeastOne( List<String> a, String[] b ) { Set<String> aSet = new HashSet( a ); for (
列表a
和一个字符串[]b
。如果数组中至少有一个列表成员,我希望返回true。就这点而言,我处理的是列表
和字符串[]
,这并不重要。两者都可以是列表
编辑
Java8似乎为您提供了一种方法。更基本的方法呢
谢谢,没有Java 8流的单向:
public boolean containsAtLeastOne( List<String> a, String[] b ) {
Set<String> aSet = new HashSet( a );
for ( s : b ) {
if ( aSet.contains( s ) ) {
return true;
}
}
return false;
}
public boolean containsAtLeastOne(列表a,字符串[]b){
Set aSet=新哈希集(a);
(s:b){
如果(组件包含){
返回true;
}
}
返回false;
}
另一种方式:
public boolean containsAtLeastOne( List<String> a, String[] b ) {
Set<String> aSet = new HashSet( a );
List<String> bList = Arrays.asList(b);
bList.retainAll( aSet );
return 0 < bList.size();
}
public boolean containsAtLeastOne(列表a,字符串[]b){
Set aSet=新哈希集(a);
List bList=Arrays.asList(b);
B名单保留(aSet);
返回0
最基本的方法可能是循环?我不知道你为什么问一个问题,然后把VTC当作另一个问题的复制品…@Frakcool,是的,我认为是一样的,但不是…@Ravi这是唯一的方法吗?看起来太简单了,但话说回来…@DavidBrossard,正如你提到的,更基本的方法是什么。那么,是的。