こんにちは私は現在4つの配列を持っており、すべて異なるデータを保持しています。私が遭遇した問題は、配列の1つをアルファベット順に並べ替えたいということです。
class IgnoreCaseComparator implements Comparator<String> {
public int compare(String strA, String strB) {
return strA.compareToIgnoreCase(strB);
}
}
IgnoreCaseComparator icc = new IgnoreCaseComparator();
java.util.Collections.sort(ARRAY,icc);
ARRAYが配列である場合、アルファベット順に並べ替えますが、配列を一緒に並べ替える必要があります。
たとえば、私の配列が次のようになっているとしましょう
Pet Array: [Dog, Cat, Bird]
Owner Array: [Jim, Kyle, Joe]
Friend Array: [Jake, Jim, John]
Cat Array: [false, true, false]
そして、Pet Arrayに基づいて並べ替えたいのですが、出力は次のようになります。3番目の値がすべて最初になり、最初の値が3番目になります(これは、実際の配列に数千の入力が含まれている単純化されたものです)
Pet Array: [Bird, Cat, Dog]
Owner Array: [Joe, Kyle, Jim]
Friend Array: [John, Jim, Jake]
Cat Array: [false, true, false]
これを行う簡単な方法はありますか?1つの配列を並べ替えて、他の配列をフォローさせることができます。この問題についてご協力いただきありがとうございます。
===編集===
私の解決策がわずかに異なる原因を除いて、チェックされた答えを少し読んだのは完璧です私はcompareToメソッドにわずかに異なるリターンラインしかありません
class Entity implements Comparable<Entity> {
String Pet;
String Owner;
String Friend;
int Cat;
Entity(String Pet, String Owner, String Friend, int Cat) {
this.Pet = Pet;
this.Owner = Owner;
this.Friend = Friend;
this.Cat = Cat;
}
@Override
public int compareTo(Entity other) {
return this.Pet.compareToIgnoreCase(other.Pet);
}
}