Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 87259bd

Browse files
排序2
1 parent aa96e87 commit 87259bd

File tree

1 file changed

+78
-2
lines changed

1 file changed

+78
-2
lines changed

‎JdkLearn/src/main/java/com/learnjava/lambda/LambdaComparatorDemo.java‎

Lines changed: 78 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ public class LambdaComparatorDemo {
1313
public static String[] arrays = {"Milan", "london", "San Francisco", "Tokyo", "New Delhi"};
1414

1515
public static void main(String[] args) {
16-
test01();
16+
// test01();
17+
// test02();
18+
test03();
1719
}
1820

1921
/**
@@ -38,6 +40,69 @@ public static void test01() {
3840
.forEach(System.out::println);
3941
}
4042

43+
/**
44+
* 对整数数组进行排序
45+
*/
46+
public static void test02() {
47+
List<Integer> numbers = Arrays.asList(6, 2, 4, 3, 1, 9);
48+
System.out.println(numbers);
49+
50+
// 自然排序(升序)
51+
numbers.sort(Comparator.naturalOrder());
52+
System.out.println(numbers);
53+
54+
// 降序
55+
numbers.sort(Comparator.reverseOrder());
56+
System.out.println(numbers);
57+
}
58+
59+
/**
60+
* 对对象进行排序
61+
*/
62+
public static void test03() {
63+
Employee e1 = new Employee(1,23,"M","Rick","Beethovan");
64+
Employee e2 = new Employee(2,13,"F","Martina","Hengis");
65+
Employee e3 = new Employee(3,43,"M","Ricky","Martin");
66+
Employee e4 = new Employee(4,26,"M","Jon","Lowman");
67+
Employee e5 = new Employee(5,19,"F","Cristine","Maria");
68+
Employee e6 = new Employee(6,15,"M","David","Feezor");
69+
Employee e7 = new Employee(7,68,"F","Melissa","Roy");
70+
Employee e8 = new Employee(8,79,"M","Alex","Gussin");
71+
Employee e9 = new Employee(9,15,"F","Neetu","Singh");
72+
Employee e10 = new Employee(10,45,"M","Naveen","Jain");
73+
74+
List<Employee> employees = Arrays.asList(e1, e2, e3, e4, e5, e6, e7, e8, e9, e10);
75+
76+
// 根据employee的年龄进行自然排序
77+
employees.sort(Comparator.comparing(Employee::getAge));
78+
employees.forEach(System.out::println);
79+
80+
System.out.println();
81+
82+
// 根据employee的年龄进行降序排序
83+
employees.sort(Comparator.comparing(Employee::getAge).reversed());
84+
employees.forEach(System.out::println);
85+
86+
System.out.println();
87+
88+
// 先对性别排序,然后对年龄进行排序
89+
employees.sort(
90+
Comparator.comparing(Employee::getGender)
91+
.thenComparing(Employee::getAge)
92+
// 性别,年龄都进行倒序排序
93+
.reversed()
94+
);
95+
employees.forEach(System.out::println);
96+
97+
// 自定义排序器
98+
employees.sort((em1, em2) -> {
99+
if (em1.getAge().equals(em2.getAge())) {
100+
return 0;
101+
}
102+
return em1.getAge() - em2.getAge() > 0 ? -1 : 1;
103+
});
104+
employees.forEach(System.out::println);
105+
}
41106

42107

43108

@@ -62,7 +127,7 @@ public static void test01() {
62127

63128
@Data
64129
@AllArgsConstructor
65-
public class Employee {
130+
public staticclass Employee {
66131

67132
private Integer id;
68133
// 年龄
@@ -71,5 +136,16 @@ public class Employee {
71136
private String gender;
72137
private String firstName;
73138
private String lastName;
139+
140+
@Override
141+
public String toString() {
142+
return "Employee{" +
143+
"id=" + id +
144+
", age=" + age +
145+
", gender='" + gender + '\'' +
146+
", firstName='" + firstName + '\'' +
147+
", lastName='" + lastName + '\'' +
148+
'}';
149+
}
74150
}
75151
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /