您的位置:首页 > 编程语言 > Java开发

集合排序

2017-08-08 00:00 113 查看
1. Classic Comparator example

//
Comparator<Type> byName = new Comparator<Type>() {
@Override
public int compare(Type o1, Type o2) {
return o1.getName().compareTo(o2.getName());
}
};
// Lambda
Comparator<Type> byName =(Type o1, Type o2)->o1.getName().compareTo(o2.getName());

2. 用 Collections.sort

List<Type> collection = new ArrayList<>();
Collections.sort(collection , new Comparator<Type>() {
@Override
public int compare(Type o1, Type o2) {
return o1.getSome() - o2.getSome();
}
});

// List.sort() since Java 8
collection .sort(new Comparator<Developer>() {
@Override
public int compare(Type o1, Type o2) {
return o2.getSome() - o1.getSome();
}
});

//lambda here!
collection.sort((Type o1, Type o2)->o1.getSome()-o2.getSome());

//java 8 only, lambda also, to print the List
collection.forEach((o)->System.out.println(o));

//Lambda expression to sort a List using their salary.
Comparator<Type> salaryComparator = (o1, o2)->o1.getSalary().compareTo(o2.getSalary());
listDevs.sort(salaryComparator);

//倒序
//Lambda expression to sort a List using their salary, reversed order.
Comparator<Developer> salaryComparator = (o1, o2)->o1.getSalary().compareTo(o2.getSalary());
listDevs.sort(salaryComparator.reversed());

3.Map排序

3.1将Map转成TreeMap,使用默认排序

Map<String, String> treeMap = new TreeMap<String, String>(unsortMap);

3.1.1 自定义排序

Map<Integer, String> treeMap = new TreeMap<Integer, String>(
new Comparator<Integer>() {

@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}

});
/* For Java 8, try this lambda
Map<Integer, String> treeMap = new TreeMap<>(
(Comparator<Integer>) (o1, o2) -> o2.compareTo(o1)
);
*/

treeMap.putAll(unsortMap);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 集合排序