package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class test {
public static void main(String[] args) {
sortStringList();
System.out.println();
sortClassList();
}
private static void sortStringList() {
String[] array = new String[] { "D", "B", "A", "C" };
List<String> list = new ArrayList<String>();
for (String s : array) {
list.add(s);
System.out.print(s + " ");
}
System.out.println();
Collections.sort(list);
for (String s : list) {
System.out.print(s + " ");
}
}
private static void sortClassList() {
int[] array = new int[] { 10, 5, 30, 31, 99 };
List<Size> list = new ArrayList<Size>();
for (int n : array) {
int x = 1 * n, y = 2 * n;
list.add(new Size(x, y));
System.out.print(String.format("(%d,%d) ", x, y));
}
System.out.println();
Collections.sort(list, new Comparator<Size>() {
@Override
public int compare(Size o1, Size o2) {
return o1.x - o2.x + o1.y - o2.y;
}
});
for (Size s : list) {
System.out.print(String.format("(%d,%d) ", s.x, s.y));
}
}
private static class Size {
private int x;
private int y;
private Size(int x, int y) {
this.x = x;
this.y = y;
}
}
}
執行結果:
D B A C A B C D (10,20) (5,10) (30,60) (31,62) (99,198) (5,10) (10,20) (30,60) (31,62) (99,198)