8000 Java 8 Comparator Comparing Reverse Order · TGAMendis/CoreJava@7dd5153 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7dd5153

Browse files
author
JavaProgramTo.com
committed
Java 8 Comparator Comparing Reverse Order
1 parent 6d6289d commit 7dd5153

File tree

9 files changed

+248
-2
lines changed

9 files changed

+248
-2
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.javaprogramto.java8.comparator.reverse;
2+
3+
import java.util.Arrays;
4+
import java.util.Collections;
5+
import java.util.List;
6+
7+
public class ComparatorReverse {
8+
9+
public static void main(String[] args) {
10+
11+
List<String> list = Arrays.asList("1", "3", "2");
12+
13+
System.out.println("Original list - " + list);
14+
Collections.reverse(list);
15+
System.out.println("Reversed list - " + list);
16+
17+
}
18+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.javaprogramto.java8.comparator.reverse;
2+
3+
import java.util.Arrays;
4+
import java.util.Comparator;
5+
import java.util.List;
6+
import java.util.stream.Collectors;
7+
8+
public class ComparatorReverse2 {
9+
10+
public static void main(String[] args) {
11+
12+
List<String> list = Arrays.asList("1", "3", "2");
13+
14+
System.out.println("Original list - " + list);
15+
16+
List<String> sortedList = list.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
17+
18+
System.out.println("Sorted list - " + sortedList);
19+
20+
}
21+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.javaprogramto.java8.comparator.reverse;
2+
3+
import java.util.Arrays;
4+
import java.util.Comparator;
5+
import java.util.List;
6+
import java.util.stream.Collectors;
7+
8+
public class ComparatorReverse3 {
9+
10+
public static void main(String[] args) {
11+
12+
List<String> list = Arrays.asList("1", "3", "2");
13+
14+
System.out.println("Original list - " + list);
15+
16+
List<String> result1 = list.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
17+
System.out.println("result 1 " + result1);
18+
19+
List<String> result2 = result1.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
20+
System.out.println("result 2 - " + result2);
21+
22+
}
23+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.javaprogramto.java8.comparator.reverse;
2+
3+
import java.util.Arrays;
4+
import java.util.Comparator;
5+
import java.util.List;
6+
import java.util.stream.Collectors;
7+
8+
public class ComparatorReverse4 {
9+
10+
public static void main(String[] args) {
11+
12+
List<String> list = Arrays.asList("100", "3", "20");
13+
14+
System.out.println("Original list - " + list);
15+
16+
Comparator<String> sortByLength = Comparator.comparing(String::length);
17+
18+
List<String> sortedList = list.stream().sorted(sortByLength).collect(Collectors.toList());
19+
20+
System.out.println("Sorted by length ascending order - " + sortedList);
21+
22+
Comparator<String> sortByLengthReverse = sortByLength.reversed();
23+
24+
sortedList = list.stream().sorted(sortByLengthReverse).collect(Collectors.toList());
25+
26+
System.out.println("Sorted by length descending order - " + sortedList);
27+
}
28+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.javaprogramto.java8.comparator.reverse;
2+
3+
import java.util.ArrayList;
4+
import java.util.Comparator;
5+
import java.util.List;
6+
import java.util.stream.Collectors;
7+
8+
public class ComparatorReverse5 {
9+
10+
public static void main(String[] args) {
11+
12+
List<Teacher> teachers = new ArrayList<>();
13+
14+
teachers.add(new Teacher("Rajesh", "Science", 10));
15+
teachers.add(new Teacher("Mahesh", "Mathematics", 5));
16+
teachers.add(new Teacher("Suresh", "English", 10));
17+
teachers.add(new Teacher("Rakesh", "Science", 3));
18+
teachers.add(new Teacher("Ramesh", "Mathematics", 8));
19+
20+
System.out.println("Original teachers list - ");
21+
teachers.forEach(t -> System.out.println(t.getName()));
22+
23+
Comparator<Teacher> sortByName = (t1, t2) -> t1.getName().compareTo(t2.getName());
24+
25+
List<Teacher> sortBynameList = teachers.stream().sorted(sortByName).collect(Collectors.toList());
26+
27+
System.out.println("\nSorted by name ascending order");
28+
sortBynameList.forEach(t -> System.out.println(t.getName()));
29+
30+
Comparator<Teacher> sortByNameReverse = sortByName.reversed();
31+
32+
sortBynameList = teachers.stream().sorted(sortByNameReverse).collect(Collectors.toList());
33+
34+
System.out.println("Sorted by name descending order ");
35+
sortBynameList.forEach(t -> System.out.println(t.getName()));
36+
}
37+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.javaprogramto.java8.comparator.reverse;
2+
3+
import java.util.ArrayList;
4+
import java.util.Comparator;
5+
import java.util.List;
6+
import java.util.stream.Collectors;
7+
8+
public class ComparatorReverse6 {
9+
10+
public static void main(String[] args) {
11+
12+
List<Teacher2> Teacher2s = new ArrayList<>();
13+
14+
Teacher2s.add(new Teacher2("Rajesh", "Science", 10));
15+
Teacher2s.add(new Teacher2("Mahesh", "Mathematics", 5));
16+
Teacher2s.add(new Teacher2("Suresh", "English", 10));
17+
Teacher2s.add(new Teacher2("Rakesh", "Science", 3));
18+
Teacher2s.add(new Teacher2("Ramesh", "Mathematics", 8));
19+
20+
System.out.println("Original Teacher2s list - ");
21+
Teacher2s.forEach(t -> System.out.println(t.getSubject()));
22+
23+
List<Teacher2> sortBynameList = Teacher2s.stream().sorted()
24+
.collect(Collectors.toList());
25+
26+
System.out.println("\nSorted by subject ascending order");
27+
sortBynameList.forEach(t -> System.out.println(t.getSubject()));
28+
29+
sortBynameList = Teacher2s.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
30+
31+
System.out.println("\nSorted by subject descending order ");
32+
sortBynameList.forEach(t -> System.out.println(t.getSubject()));
33+
}
34+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.javaprogramto.java8.comparator.reverse;
2+
3+
public class Teacher {
4+
5+
String name;
6+
String subject;
7+
int experience;
8+
9+
public Teacher(String name, String subject, int experience) {
10+
super();
11+
this.name = name;
12+
this.subject = subject;
13+
this.experience = experience;
14+
}
15+
16+
public String getName() {
17+
return name;
18+
}
19+
20+
public void setName(String name) {
21+
this.name = name;
22+
}
23+
24+
public String getSubject() {
25+
return subject;
26+
}
27+
28+
public void setSubject(String subject) {
29+
this.subject = subject;
30+
}
31+
32+
public int getExperience() {
33+
return experience;
34+
}
35+
36+
public void setExperience(int experience) {
37+
this.experience = experience;
38+
}
39+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.javaprogramto.java8.comparator.reverse;
2+
3+
public class Teacher2 implements Comparable<Teacher2>{
4+
5+
String name;
6+
String subject;
7+
int experience;
8+
9+
public Teacher2(String name, String subject, int experience) {
10+
super();
11+
this.name = name;
12+
this.subject = subject;
13+
this.experience = experience;
14+
}
15+
16+
public String getName() {
17+
return name;
18+
}
19+
20+
public void setName(String name) {
21+
this.name = name;
22+
}
23+
24+
public String getSubject() {
25+
return subject;
26+
}
27+
28+
public void setSubject(String subject) {
29+
this.subject = subject;
30+
}
31+
32+
public int getExperience() {
33+
return experience;
34+
}
35+
36+
public void setExperience(int experience) {
37+
this.experience = experience;
38+
}
39+
40+
@Override
41+
public int compareTo(Teacher2 o) {
42+
// TODO Auto-generated method stub
43+
return this.getSubject().compareTo(o.getSubject());
44+
}
45+
}

src/main/java/com/javaprogramto/java8/comparator/thencomparing/SortByThreeFieldsByThenComparing.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,14 @@ public static void main(String[] args) {
2828
Comparator<Author> lastNameComparator = Comparator.comparing(Author::getLastName);
2929

3030
// thenComparing() method to merge 3 comparators in chain.
31-
Comparator<Author> firstMiddleNamesComparator = firstNameComparator.thenComparing(middleNameComparator)
31+
Comparator<Author> fullNamesComparator = firstNameComparator.thenComparing(middleNameComparator)
3232
.thenComparing(lastNameComparator);
3333

3434
System.out.println("Before sorting by 3 fields");
3535
authors.forEach(a -> System.out.println(a));
3636

37-
Collections.sort(authors, firstMiddleNamesComparator);
37+
Collections.sort(authors, fullNamesComparator);
38+
authors.sort(fullNamesComparator);
3839

3940
System.out.println("after sorting merged comparator");
4041
authors.forEach(a -> System.out.println(a));

0 commit comments

Comments
 (0)
0