第一种方法,就是list中对象实现Comparable接口,代码如下:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
public static void main(String[] args) {
List<Map<String, String>> data = new ArrayList<Map<String, String>>();
init(data);
System.out.println("排序前:");
System.out.println(data);
sort(data);
System.out.println("排序后:");
System.out.println(data);
}
private static void sort(List<Map<String, String>> data) {
Collections.sort(data, new Comparator<Map>() {
public int compare(Map o1, Map o2) {
String a = (String) o1.get("PRECOUNTOUT");
String b = (String) o2.get("PRECOUNTOUT");
// 升序
return a.compareTo(b);
// 降序
// return b.compareTo(a);
}
});
}
private static void init(List<Map<String, String>> data) {
Map<String, String> map = new HashMap<String, String>();
map.put("COUNTTICKET", "a");
map.put("PRECOUNTOUT", "abd");
data.add(map);
map = new HashMap<String, String>();
map.put("COUNTTICKET", "b");
map.put("PRECOUNTOUT", "abc");
data.add(map);
map = new HashMap<String, String>();
map.put("COUNTTICKET", "c");
map.put("PRECOUNTOUT", "d");
data.add(map);
map = new HashMap<String, String>();
map.put("COUNTTICKET", "d");
map.put("PRECOUNTOUT", "a");
data.add(map);
}
}