快速确定列表是否包含数组中包含的至少一个项目的方法

时间:2017-07-06 14:35:55

标签: java arrays list

我有List<String> aString[] b。如果数组中至少有一个列表成员,我想返回true。就此而言,我处理List<String>String[]并不重要。两者都可以是名单。

修改

Java 8为您提供了do it via streams的方法。那些更基本的方法呢?

由于

1 个答案:

答案 0 :(得分:2)

没有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( List<String> a, String[] b ) {
    Set<String> aSet = new HashSet( a );
    List<String> bList = Arrays.asList(b);

    bList.retainAll( aSet );

    return 0 < bList.size();
 }