Kotlin 数据容器 - Array sort 系列方法与 drop 系列方法
sort 系列方法1、原地排序升序排序valarrarrayOf(3,1,4,1,5,9)arr.sort()println(Arrays.toString(arr))# 输出结果 [1, 1, 3, 4, 5, 9]降序排序valarrarrayOf(3,1,4,1,5,9)arr.sortDescending()println(Arrays.toString(arr))# 输出结果 [9, 5, 4, 3, 1, 1]自定义升序排序valarrarrayOf(32,1,434,1679,5,9)arr.sortBy{it%2}println(Arrays.toString(arr))# 输出结果 [32, 434, 1, 1679, 5, 9]dataclassPerson(valname:String,valage:Int)valpeoplearrayOf(Person(Alice,30),Person(Bob,20),Person(Charlie,25))people.sortBy{it.age}println(Arrays.toString(people))# 输出结果 [Person(nameBob, age20), Person(nameCharlie, age25), Person(nameAlice, age30)]自定义降序排序valarrarrayOf(32,1,434,1679,5,9)arr.sortByDescending{it.toString().length}println(Arrays.toString(arr))# 输出结果 [1679, 434, 32, 1, 5, 9]2、返回新数组valarrarrayOf(3,1,4,1,5,9)// 返回新数组valsortedarr.sortedArray()valsortedDescarr.sortedArrayDescending()// 返回 ListvalsortedListarr.sorted()valsortedDescListarr.sortedDescending()println(Arrays.toString(sorted))println(Arrays.toString(sortedDesc))println(sortedList)println(sortedDescList)# 输出结果 [1, 1, 3, 4, 5, 9] [9, 5, 4, 3, 1, 1] [1, 1, 3, 4, 5, 9] [9, 5, 4, 3, 1, 1]valarrarrayOf(32,1,434,1679,5,9)valcustomarr.sortedBy{it%2}valcustomDescarr.sortedByDescending{it.toString().length}println(custom)println(customDesc)# 输出结果 [32, 434, 1, 1679, 5, 9] [1679, 434, 32, 1, 5, 9]3、部分排序valarrarrayOf(1111,32,1,434,1679,5,9,2222)arr.sort(1,7)println(Arrays.toString(arr))# 输出结果 [1111, 1, 5, 9, 32, 434, 1679, 2222]drop 系列方法1、丢弃前 n 个元素valarrarrayOf(1,2,3,4,5)valresult1arr.drop(0)valresult2arr.drop(2)valresult3arr.drop(5)valresult4arr.drop(10)println(result1)println(result2)println(result3)println(result4)# 输出结果 [1, 2, 3, 4, 5] [3, 4, 5] [] []2、丢弃后 n 个元素valarrarrayOf(1,2,3,4,5)valresult1arr.dropLast(2)valresult2arr.dropLast(0)valresult3arr.dropLast(5)println(result1)println(result2)println(result3)# 输出结果 [1, 2, 3] [1, 2, 3, 4, 5] []3、条件丢弃从开头valarrarrayOf(1,3,5,2,4,6,11)// 丢弃开头的奇数一旦遇到偶数就停止valresult1arr.dropWhile{it%21}// 丢弃开头的小于 3 的元素一旦遇到大于等于 3 的元素就停止valresult2arr.dropWhile{it3}println(result1)println(result2)# 输出结果 [2, 4, 6, 11] [3, 5, 2, 4, 6, 11]4、条件丢弃从结尾valarrarrayOf(1,2,3,4,5,6)// 丢弃结尾的偶数一旦遇到奇数就停止valresult1arr.dropLastWhile{it%20}// 丢弃结尾的大于 3 的元素一旦遇到小于等于 3 的元素就停止valresult2arr.dropLastWhile{it3}println(result1)println(result2)# 输出结果 [1, 2, 3, 4, 5] [1, 2, 3]