【发布时间】:2017-09-26 05:02:45
【问题描述】:
我收到一个字符串数组列表
String[] sa1 = {"120", "John" , "30" , "[\"science\",\"arts\"]"};
String[] sa2 = {"20", "Michael" , "29" , "[\"commerce\",\"engineering\"]"};
String[] sa3 = {"20", "Andrew" , "31" , "[\"science\",\"engineering\"]"};
我收到的列表包含这些类型的数组。 我目前用于排序的方法是:
Collections.sort(nameL, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
return Arrays.toString(o1).compareTo(Arrays.toString(o2));
}
});
但这是基于 Ascii 字符排序的,因为数组是字符串类型。 问题是我不知道整数的位置
可以是:
sa1 = {"John", "120" , "30" , "[\"science\",\"arts\"]"};
但如果 sa1 是这样的,那么 sa2 和 sa3 也会在同一位置有整数。
AIM是先排序,如果相同则第二个,依此类推:
期望的输出:
{"20", "Andrew" , "31" , "[\"science\",\"engineering\"]"}
{"20", "Michael" , "29" , "[\"commerce\",\"engineering\"]"},
{"120", "John" , "30" , "[\"science\",\"arts\"]"}
【问题讨论】:
标签: java arrays list sorting comparator