嗨,我目前有 4 个数组,它们都保存着不同的数据,我遇到的问题是我想按字母顺序对其中一个数组进行排序,通常我会这样做
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 进行排序,我的输出应该是这样的,其中所有第三个值现在都是第一个,第一个值现在是第三个(这太简化了,我的实际数组包含数千个输入)
Pet Array: [Bird, Cat, Dog]
Owner Array: [Joe, Kyle, Jim]
Friend Array: [John, Jim, Jake]
Cat Array: [false, true, false]
有没有一种简单的方法可以做到这一点,我可以对一个数组进行排序并让其他数组跟随。感谢您对此问题的任何帮助。
===编辑===
除了我的解决方案略有不同,因为我做了一点阅读检查的答案是完美的,我在 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);
}
}