sort 系列方法
1、原地排序
- 升序排序
valarr=arrayOf(3,1,4,1,5,9)arr.sort()println(Arrays.toString(arr))
# 输出结果 [1, 1, 3, 4, 5, 9]
- 降序排序
valarr=arrayOf(3,1,4,1,5,9)arr.sortDescending()println(Arrays.toString(arr))
# 输出结果 [9, 5, 4, 3, 1, 1]
- 自定义升序排序
valarr=arrayOf(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)valpeople=arrayOf(Person("Alice",30),Person("Bob",20),Person("Charlie",25))people.sortBy{it.age}println(Arrays.toString(people))
# 输出结果 [Person(name=Bob, age=20), Person(name=Charlie, age=25), Person(name=Alice, age=30)]
- 自定义降序排序
valarr=arrayOf(32,1,434,1679,5,9)arr.sortByDescending{it.toString().length}println(Arrays.toString(arr))
# 输出结果 [1679, 434, 32, 1, 5, 9]
2、返回新数组
valarr=arrayOf(3,1,4,1,5,9)// 返回新数组valsorted=arr.sortedArray()valsortedDesc=arr.sortedArrayDescending()// 返回 ListvalsortedList=arr.sorted()valsortedDescList=arr.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]
valarr=arrayOf(32,1,434,1679,5,9)valcustom=arr.sortedBy{it%2}valcustomDesc=arr.sortedByDescending{it.toString().length}println(custom)println(customDesc)
# 输出结果 [32, 434, 1, 1679, 5, 9] [1679, 434, 32, 1, 5, 9]
3、部分排序
valarr=arrayOf(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 个元素
valarr=arrayOf(1,2,3,4,5)valresult1=arr.drop(0)valresult2=arr.drop(2)valresult3=arr.drop(5)valresult4=arr.drop(10)println(result1)println(result2)println(result3)println(result4)
# 输出结果 [1, 2, 3, 4, 5] [3, 4, 5] [] []
2、丢弃后 n 个元素
valarr=arrayOf(1,2,3,4,5)valresult1=arr.dropLast(2)valresult2=arr.dropLast(0)valresult3=arr.dropLast(5)println(result1)println(result2)println(result3)
# 输出结果 [1, 2, 3] [1, 2, 3, 4, 5] []
3、条件丢弃(从开头)
valarr=arrayOf(1,3,5,2,4,6,11)// 丢弃开头的奇数,一旦遇到偶数就停止valresult1=arr.dropWhile{it%2==1}// 丢弃开头的小于 3 的元素,一旦遇到大于等于 3 的元素就停止valresult2=arr.dropWhile{it<3}println(result1)println(result2)
# 输出结果 [2, 4, 6, 11] [3, 5, 2, 4, 6, 11]
4、条件丢弃(从结尾)
valarr=arrayOf(1,2,3,4,5,6)// 丢弃结尾的偶数,一旦遇到奇数就停止valresult1=arr.dropLastWhile{it%2==0}// 丢弃结尾的大于 3 的元素,一旦遇到小于等于 3 的元素就停止valresult2=arr.dropLastWhile{it>3}println(result1)println(result2)
# 输出结果 [1, 2, 3, 4, 5] [1, 2, 3]