Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-按字母和数字顺序排列数组中的对象_Java_Arrays_Sorting_Comparator - Fatal编程技术网

Java-按字母和数字顺序排列数组中的对象

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 -

我得到了一个包含名称和数字的对象数组。我想先按数字(从高到低)对它们进行排序。如果两个或多个对象具有相同的编号,则必须按字母顺序对其进行排序。我如何在Java中做到这一点?(对象具有名称和编号的getter)

输入示例:

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);