繁体   English   中英

Android比较两个数组?

[英]Android Compare Two Array?

我有一个问题,我需要比较两个数组,并且想要获得不匹配的值。

例:

List<String> Array1=new ArrayList<String>();
List<String> Array2=new ArrayList<String>();
List<String> Array3=new ArrayList<String>();

Array1.add("1");
Array1.add("23");
Array1.add("1211");
Array1.add("12232");
Array1.add("231");
Array1.add("2231");

Array2.add("1");
Array2.add("23");
Array2.add("231");
Array2.add("2231");

// Array3 values are 1211 12232

这可能吗?

您需要使用removeAll

List<String> array3 = new ArrayList<String>(array1);//Create copy of array 1
array3.removeAll(array2);//Remove common elements 

使用Set(它也将删除重复项)

 Set<String> set1 = new HashSet(array1);
 Set<String> set2 = new HashSet(array2);
 set1.removeAll(set2);

您必须自己做,但这并不困难。 一种可能的解决方案:

Collections.sort( Array2 );  // Don't need this one if Array2 is already sorted.
for( String s : Array1 ) {
    if ( Collections.binarySearch( Array2, s ) < 0 )
        Array3.add( s );
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM