0

問題が1つあります。2つの配列を比較する必要があり、一致しない値を取得したいのです。

例:

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

これは可能ですか?

4

3 に答える 3

3

を使用する必要がありますremoveAll

List<String> array3 = new ArrayList<String>(array1);//Create copy of array 1
array3.removeAll(array2);//Remove common elements 
于 2012-11-01T17:50:49.783 に答える
3

Setを使用します(重複も削除されます)

 Set<String> set1 = new HashSet(array1);
 Set<String> set2 = new HashSet(array2);
 set1.removeAll(set2);
于 2012-11-01T17:51:25.987 に答える
0

あなたはそれを自分でしなければならないでしょう、しかしそれはそれほど難しいことではありません。考えられる解決策の1つ:

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 );
}
于 2012-11-01T17:49:31.153 に答える