LamadSort.java
package com.example.demo.util;
import com.example.demo.entity.User;
import java.util.*;
import java.util.stream.Collectors;
public class LamadSort{
public static void main(String[] args) {
System.out.println("list集合:");
test1();
System.out.println("\nmap按ASCII排序:");
test2();
System.out.println("\n對象屬性:");
test3();
System.out.println("\n數組:");
test4();
}
public static void test1() {
List<User> users = new ArrayList<User>();
User u1 = new User(2, "劉德華");
User u2 = new User(3, "彭于晏");
User u3 = new User(1, "林峯");
users.add(u1);
users.add(u2);
users.add(u3);
Collections.sort(users, (uer1, uer2) -> uer1.getId().compareTo(uer2.getId()));
users.forEach(user -> {
System.out.println("id = " + user.getId() + ",name = " + user.getName());
});
}
public static void test2() {
Map<String, Integer> map = new HashMap();
map.put("key1",10);
map.put("key2",13);
map.put("key3",11);
map.put("key4",14);
map.put("key5",12);
map = map.entrySet()
.stream()
.sorted(Map.Entry.<String, Integer>comparingByValue())
.collect(Collectors.toMap(k -> k.getKey(), v -> v.getValue(),
(k, v) -> k, LinkedHashMap::new));
map.forEach((key, value) -> {
System.out.println("Key: " + key + ", Value: " + value);
});
}
public static void test3() {
List<User> users = new ArrayList<User>();
User u1 = new User(2, "劉德華");
User u2 = new User(3, "彭于晏");
User u3 = new User(1, "林峯");
users.add(u1);
users.add(u2);
users.add(u3);
System.out.println("------------升序---------------");
List<User> userAscList = users.stream().sorted(Comparator.comparing(User::getId))
.collect(Collectors.toList());
userAscList.forEach(user -> {
System.out.println("id = " + user.getId() + ",name = " + user.getName());
});
System.out.println("------------降序---------------");
List<User> userDescList = users.stream().sorted(Comparator.comparing(User::getId).reversed())
.collect(Collectors.toList());
userDescList.forEach(user -> {
System.out.println("id = " + user.getId() + ",name = " + user.getName());
});
}
public static void test4(){
String[] datas = {"2016-06-28 08:00:00",
"2017-12-05 19:17:32",
"2017-03-06 22:14:51",
"2016-12-28 08:00:00",
"2017-03-05 19:17:32",
"2017-03-06 22:14:51"};
Arrays.sort(datas, (String s1, String s2) -> (s1.compareTo(s2)));
Arrays.stream(datas).forEach(System.out::println);
}
}
User.java
package com.example.demo.entity;
public class User {
private Integer id;
private String name;
public User(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
輸出
list集合:
id = 1,name = 林峯
id = 2,name = 劉德華
id = 3,name = 彭于晏
map按ASCII排序:
Key: key1, Value: 10
Key: key3, Value: 11
Key: key5, Value: 12
Key: key2, Value: 13
Key: key4, Value: 14
對象屬性:
------------升序---------------
id = 1,name = 林峯
id = 2,name = 劉德華
id = 3,name = 彭于晏
------------降序---------------
id = 3,name = 彭于晏
id = 2,name = 劉德華
id = 1,name = 林峯
數組:
2016-06-28 08:00:00
2016-12-28 08:00:00
2017-03-05 19:17:32
2017-03-06 22:14:51
2017-03-06 22:14:51
2017-12-05 19:17:32