-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCustomClass.java
More file actions
85 lines (59 loc) · 2.21 KB
/
CustomClass.java
File metadata and controls
85 lines (59 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package com.newTest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
public class CustomClass implements Comparable<CustomClass>
{
/*
* Comparable -> Used for sorting the objects Collections.sort(List); list can
* be list of Strings or list of Wrapper Classes like Integer etc . String and
* Wrapper classes already implement the Comparable Interface . Hence , they can
* be sorted easily. For custom classes , we need to explicitly implement the
* Comparable Interface before we can sort the objects of the Custom class
*/
String str ;
int id ;
CustomClass(int id, String str)
{
this.id = id;
this.str = str ;
}
//IMPLEMENT COMPARETO from COMPARABLE
@Override
public int compareTo(CustomClass o) {
// TODO Auto-generated method stub
return this.str.compareTo(o.str);
}
//IMPLEMENT COMPARE from COMPARATOR
public static final Comparator<CustomClass> IDComparator = new Comparator<CustomClass>(){
@Override
public int compare(CustomClass o1, CustomClass o2) {
return o1.id - o2.id;
}
};
public static void main(String[] args)
{
CustomClass custom1 = new CustomClass(1,"doll");
CustomClass custom2 = new CustomClass(3,"cat");
CustomClass custom3 = new CustomClass(5,"ball");
CustomClass custom4 = new CustomClass(2,"apple");
System.out.println(custom1.equals(custom2));
List<CustomClass> list = new ArrayList<>();
list.add(custom1);
list.add(custom2);
list.add(custom3);
list.add(custom4);
System.out.println("Print list before sorting:- "+list);
Collections.sort(list);
System.out.println("Print list after sorting:- "+list);
System.out.println("***Using Comparator***");
Collections.sort(list, IDComparator);
System.out.println("Print list after sorting using Comparator:- "+list);
}
@Override
public String toString() {
return "CustomClass [str=" + str + ", id=" + id + "]";
}
}