package test;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
public class Test20 {
public static void main(String[] args) {
LinkedList<String[]> list = new LinkedList<>();
list.add(new String[]{"A", "2", "3"});
list.add(new String[]{"B", "1", "3"});
list.add(new String[]{"C", "3", "3"});
Collections.sort(list, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
return Integer.parseInt(o2[1]) - Integer.parseInt(o1[1]);
}
});
for (String[] s : list) {
System.out.println(s[0] + " " + s[1]);
}
for (String[] s : list) {
System.out.println(Arrays.toString(s));
}
}
}
升级版,根据传入的数字决定排序的数组角标,i要定义为final!!
package test;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
public class Test20 {
public static void main(String[] args) {
LinkedList<String[]> list = new LinkedList<>();
list.add(new String[]{"A", "2", "4"});
list.add(new String[]{"B", "1", "6"});
list.add(new String[]{"C", "3", "5"});
sortSore(list,2);
}
private static void sortSore(LinkedList<String[]> list, final int i) {
Collections.sort(list, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
return Integer.parseInt(o2[i]) - Integer.parseInt(o1[i]);
}
});
for (String[] s : list) {
System.out.println(s[0] + " " + s[i]);
}
for (String[] s : list) {
System.out.println(Arrays.toString(s));
}
}
}