Skip to content

Commit 0ef0df3

Browse files
字段排序
1 parent 53eb531 commit 0ef0df3

1 file changed

Lines changed: 24 additions & 11 deletions

File tree

‎src/main/java/com/java8/stream/SortedDemo.java‎

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public static void order() {
2727
Order order2=Order.builder().dateStr("2021-10-01 00:00:00").price(1.3).build();
2828
Order order3=Order.builder().dateStr("2021-10-01 00:00:00").price(55.3).build();
2929
Order order4=Order.builder().dateStr("2021-12-01 00:00:00").price(55.3).build();
30+
//添加null测试
3031
Order order5=Order.builder().dateStr(null).price(null).build();
3132

3233
List<Order> list= new ArrayList<>();
@@ -36,20 +37,32 @@ public static void order() {
3637
list.add(order4);
3738
list.add(order5);
3839

40+
// ==========================================================================
41+
//naturalOrder()表示自然排序(一般是升序),没有处理null,排序时可能会空指针
42+
Comparator<Order> comparator1 = Comparator.comparing(Order::getDateStr, Comparator.naturalOrder());
43+
// List<Order> orderList1 = list.stream().sorted(comparator1).collect(Collectors.toList());
44+
// System.out.println("orderList1:"+orderList1);
45+
46+
47+
// ==========================================================================
48+
//Comparator.reverseOrder表示 降序,没有处理null,排序时可能会空指针
49+
Comparator<Order> comparator2 = Comparator.comparing(Order::getDateStr, Comparator.reverseOrder());
50+
// List<Order> orderList2 = list.stream().sorted(comparator2).collect(Collectors.toList());
51+
// System.out.println("orderList2:"+orderList2);
3952

4053
// ==========================================================================
4154

42-
//naturalOrder()表示自然排序(一般是升序),Comparator.nullsLast表示如果属性为null,就放到最后面
43-
Comparator<Order> comparator = Comparator.comparing(Order::getDateStr, Comparator.nullsLast(naturalOrder()) );
44-
List<Order> orderList = list.stream().sorted(comparator).collect(Collectors.toList());
45-
// System.out.println("orderList:"+orderList);
55+
//Comparator.nullsLast表示如果属性为null,就放到最后面
56+
Comparator<Order> comparator3 = Comparator.comparing(Order::getDateStr, Comparator.nullsLast(naturalOrder()) );
57+
List<Order> orderList3 = list.stream().sorted(comparator3).collect(Collectors.toList());
58+
// System.out.println("orderList3:"+orderList3);
4659

4760
// ==========================================================================
4861

49-
//Comparator.reverseOrder表示 降序,nullsFirst表示如果属性为null,就放到最前面。
50-
Comparator<Order> comparator2 = Comparator.comparing(Order::getDateStr, Comparator.nullsFirst(Comparator.reverseOrder()));
51-
List<Order> orderList2 = list.stream().sorted(comparator2).collect(Collectors.toList());
52-
// System.out.println("orderList2:"+ orderList2);
62+
//nullsFirst表示如果属性为null,就放到最前面。
63+
Comparator<Order> comparator4 = Comparator.comparing(Order::getDateStr, Comparator.nullsFirst(Comparator.reverseOrder()));
64+
List<Order> orderList4 = list.stream().sorted(comparator4).collect(Collectors.toList());
65+
// System.out.println("orderList4:"+ orderList4);
5366

5467
// ==========================================================================
5568

@@ -59,10 +72,10 @@ public static void order() {
5972
//Order(price=33.3, dateStr=2021-10-01 00:00:00),
6073
//Order(price=1.3, dateStr=2021-10-01 00:00:00)]
6174

62-
Comparator<Order> comparator3 = Comparator.comparing(Order::getDateStr, Comparator.nullsLast(Comparator.reverseOrder()))
75+
Comparator<Order> comparator5 = Comparator.comparing(Order::getDateStr, Comparator.nullsLast(Comparator.reverseOrder()))
6376
.thenComparing(Order::getPrice, Comparator.nullsLast(Comparator.reverseOrder()));
64-
List<Order> orderList3 = list.parallelStream().sorted(comparator3).collect(Collectors.toList());
65-
System.out.println("orderList3:"+ orderList3);
77+
List<Order> orderList5 = list.parallelStream().sorted(comparator5).collect(Collectors.toList());
78+
System.out.println("orderList5:"+ orderList5);
6679

6780

6881
}

0 commit comments

Comments
 (0)