Java-按字母和数字顺序排列数组中的对象
我得到了一个包含名称和数字的对象数组。我想先按数字(从高到低)对它们进行排序。如果两个或多个对象具有相同的编号,则必须按字母顺序对其进行排序。我如何在Java中做到这一点?(对象具有名称和编号的getter) 输入示例:Java-按字母和数字顺序排列数组中的对象,java,arrays,sorting,comparator,Java,Arrays,Sorting,Comparator,我得到了一个包含名称和数字的对象数组。我想先按数字(从高到低)对它们进行排序。如果两个或多个对象具有相同的编号,则必须按字母顺序对其进行排序。我如何在Java中做到这一点?(对象具有名称和编号的getter) 输入示例: Object1 - AAA - 5 Object2 - ABC - 5 Object3 - XAC - 6 Object4 - ZZZ - 3 输出 Object3 - XAC - 6 Object1 - AAA - 5 Object2 - ABC - 5 Object4 -
Object1 - AAA - 5
Object2 - ABC - 5
Object3 - XAC - 6
Object4 - ZZZ - 3
输出
Object3 - XAC - 6
Object1 - AAA - 5
Object2 - ABC - 5
Object4 - ZZZ - 3
您可以定制一个比较器。鉴于:
class Item {
String id;
int nr;
// with associated getters and the like.
}
使用记录或文件将其整理成一个完整的类
然后:
如果您有一个列表:
List<Item> list = ...;
list.sort(comparator);
List=。。。;
列表.排序(比较器);
注:我建议你使用列表,数组有点烦人,层次低。Hi@trsommer,你自己试过什么吗:)我知道如何按数字和字母顺序排序,但我无法将它们组合起来得到我想要的结果感谢详细的回复,效果非常好
Item[] items = ...;
Arrays.sort(items, comparator);
List<Item> list = ...;
list.sort(comparator);