次のようなことを試してください:
編集
以下の実行中および動作中のコード:
bash-3.2$ cat ArraysTest.java
import java.util.*;
public class ArraysTest {
public static void main( String [] args ) {
Set<Integer[]> set = new TreeSet<Integer[]>( new Comparator<Integer[]>() {
public int compare( Integer[] one, Integer[] two ) {
if( Arrays.equals( one, two ) ) {
return 0;
}
return Arrays.hashCode( one ) - Arrays.hashCode( two );
}
public boolean equals( Object o ){ return false; }
});
set.add( new Integer[]{1,2,3});
set.add( new Integer[]{1,2,3});
set.add( new Integer[]{3,2,1});
for( Integer[] i : set ) {
System.out.println( Arrays.asList( i ) );
}
}
}
bash-3.2$ javac ArraysTest.java
bash-3.2$ java ArraysTest
[1, 2, 3]
[3, 2, 1]
bash-3.2$
これは単なるサンプルであり、実際に実行するコードではありません。
ご存じのように、セットは 1 つの要素のみを受け入れTreeSet
、カスタム コンパレータを使用して を作成すると、何が等しいかをセットに伝えることができます。
Arrays.equals()
メソッドについて説明します。
..同じ要素が同じ順序で含まれている場合、2 つの配列は等しいです...