-
Notifications
You must be signed in to change notification settings - Fork 0
/
Comparable.kt
48 lines (40 loc) · 1.19 KB
/
Comparable.kt
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
class PersonDetails(var name:String, var age:Int):Comparable<PersonDetails>{
override fun compareTo(other: PersonDetails): Int {
return this.age - other.age
}
}
fun main(args:Array<String>){
// Sorting by comparable default data type (String)
val listOfName = ArrayList<String>()
listOfName.add("Lena")
listOfName.add("Jena")
listOfName.add("Hussein")
println("before sorting :")
listOfName.forEach({
println(it)
})
println("sorting")
// Collections.sort(listOfName)
listOfName.sort()
println("after sorting :")
listOfName.forEach({
println(it)
})
// Sorting by custom sort
// because it's using data type custom (PersonDetails)
val personList = ArrayList<PersonDetails>()
personList.add(PersonDetails("Lena", 10))
personList.add(PersonDetails("Jena", 8))
personList.add(PersonDetails("Hussein", 29))
println("before sorting :")
personList.forEach({
println("name : " + it.name)
println("age : " + it.age)
})
personList.sort()
println("before sorting :")
personList.forEach({
println("name : " + it.name)
println("age : " + it.age)
})
}