1
1
package com.baeldung.sorting
2
2
3
+ import org.slf4j.LoggerFactory
4
+
5
+ val log = LoggerFactory .getLogger(" SortingExample" )
6
+
3
7
fun sortMethodUsage () {
4
8
val sortedValues = mutableListOf (1 , 2 , 7 , 6 , 5 , 6 )
5
9
sortedValues.sort()
6
- println ( sortedValues)
10
+ log.info( " $ sortedValues" )
7
11
}
8
12
9
13
fun sortByMethodUsage () {
10
14
val sortedValues = mutableListOf (1 to " a" , 2 to " b" , 7 to " c" , 6 to " d" , 5 to " c" , 6 to " e" )
11
15
sortedValues.sortBy { it.second }
12
- println ( sortedValues)
16
+ log.info( " $ sortedValues" )
13
17
}
14
18
15
19
fun sortWithMethodUsage () {
16
20
val sortedValues = mutableListOf (1 to " a" , 2 to " b" , 7 to " c" , 6 to " d" , 5 to " c" , 6 to " e" )
17
- sortedValues.sortWith(compareBy({it.second}, {it.first}))
18
- println ( sortedValues)
21
+ sortedValues.sortWith(compareBy({ it.second }, { it.first }))
22
+ log.info( " $ sortedValues" )
19
23
}
20
24
21
- fun <T : kotlin.Comparable <T >> getSimpleComparator () : Comparator <T > {
25
+ fun <T : kotlin.Comparable <T >> getSimpleComparator (): Comparator <T > {
22
26
val ascComparator = naturalOrder<T >()
23
27
return ascComparator
24
28
}
25
29
26
30
fun getComplexComparator () {
27
- val complexComparator = compareBy<Pair <Int , String >>({it.first}, {it.second})
28
- print (" Complex comparator result: $complexComparator " )
31
+ val complexComparator = compareBy<Pair <Int , String >>({ it.first }, { it.second })
32
+ log.info (" Complex comparator result: $complexComparator " )
29
33
}
30
34
31
35
fun nullHandlingUsage () {
32
36
val sortedValues = mutableListOf (1 to " a" , 2 to null , 7 to " c" , 6 to " d" , 5 to " c" , 6 to " e" )
33
37
sortedValues.sortWith(nullsLast(compareBy { it.second }))
34
- println ( sortedValues)
38
+ log.info( " $ sortedValues" )
35
39
}
36
40
37
41
fun extendedComparatorUsage () {
38
42
val students = mutableListOf (21 to " Helen" , 21 to " Tom" , 20 to " Jim" )
39
43
40
- val ageComparator = compareBy<Pair <Int , String ?>> {it.first}
41
- val ageAndNameComparator = ageComparator.thenByDescending {it.second}
42
- println (students.sortedWith(ageAndNameComparator))
44
+ val ageComparator = compareBy<Pair <Int , String ?>> { it.first }
45
+ val ageAndNameComparator = ageComparator.thenByDescending { it.second }
46
+ students.sortWith(ageAndNameComparator)
47
+ log.info(" $students " )
43
48
}
0 commit comments