を使用する方法は2つありますTreeSet
。
- 実装するオブジェクトが含まれている
Comparable
Comparator
の要素を比較するカスタムオブジェクトを用意しますTreeSet
。
をTreeSet
含む必要がありBitSet
、をBitSet
実装しないため、カスタムComparable
を指定する必要があります。それをどのように実装するかはあなた次第です。TreeSet
Comparator
Comparator
SortedSet<BitSet> s = new TreeSet<BitSet>(new CustomBitSetComparator());
s.add(bitSet1);
s.add(bitSet2);
//etc ...
コンパレータは次のようになります
class CustomBitSetComparator implements Comparator<BitSet>{
int compare(BitSet a, BitSet b) {
if(a == b){
return 0;
} else if(a == null) {
return -1;
} else if(b == null) {
return 1;
} else if(a.equals(b)) {
return 0;
} else if(a.length() > b.length()) {
return 1;
} else if(b.lenght() > a.length()) {
return -1;
} else {
for(int i = 0; i < a.length(); i++) {
if(a.get(i) != b.get(i)) {
if(a.get(i)) {
return 1;
} else {
return -1;
}
}
}
return 0;
}
}
}