news 2026/5/4 20:46:24

Kotlin 数据容器 - Array sort 系列方法与 drop 系列方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kotlin 数据容器 - Array sort 系列方法与 drop 系列方法

sort 系列方法

1、原地排序
  1. 升序排序
valarr=arrayOf(3,1,4,1,5,9)arr.sort()println(Arrays.toString(arr))
# 输出结果 [1, 1, 3, 4, 5, 9]
  1. 降序排序
valarr=arrayOf(3,1,4,1,5,9)arr.sortDescending()println(Arrays.toString(arr))
# 输出结果 [9, 5, 4, 3, 1, 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)]
  1. 自定义降序排序
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]
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 20:42:28

Harnss:统一AI编程代理控制台,实现多引擎协同开发与状态持久化

1. 项目概述&#xff1a;为什么我们需要一个AI编程代理的“统一控制台”&#xff1f;如果你和我一样&#xff0c;每天都在和Claude Code、Cursor、GitHub Copilot Chat&#xff0c;甚至是自己配置的本地模型打交道&#xff0c;那你一定体会过那种“精神分裂”般的开发体验。每个…

作者头像 李华
网站建设 2026/5/4 20:42:27

m4s-converter技术解析:5秒实现B站缓存视频无损转换的终极方案

m4s-converter技术解析&#xff1a;5秒实现B站缓存视频无损转换的终极方案 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 在数字内容时代&#…

作者头像 李华
网站建设 2026/5/4 20:39:25

码蹄杯练题纯享版

2026年码蹄杯题集 目前为止做的都是青铜与白银难度的题目&#xff0c;然后就只是将自己思考的比较深的题目放在这里做一个记录了&#xff0c;其他非常非常简单的题目没有记录在这里&#xff0c;黄金及以上会在后面慢慢去挑战&#xff01; MC0505厨房里练手艺 专诸为了完成刺杀…

作者头像 李华
网站建设 2026/5/4 20:38:26

DevEco Studio:上传文件到模拟器中

先启动一个模拟器&#xff1a;例如&#xff0c;将demo.jpg用鼠标直接拖到模拟器中&#xff1a;点击模拟器的文件管理&#xff1a;点击 我的手机&#xff1a;点击 Download&#xff1a;可以看到刚才拖上来的文件&#xff1a;点击这个文件&#xff0c;在模拟器上展示&#xff1a;…

作者头像 李华
网站建设 2026/5/4 20:32:52

RoPE扩展与分层注意力优化代码大模型长上下文理解

1. 项目背景与核心挑战 在当今AI辅助编程领域&#xff0c;代码大模型的单行补全已经相当成熟&#xff0c;但当开发者需要处理复杂项目时&#xff0c;往往会遇到一个关键瓶颈——模型难以理解跨文件的上下文依赖关系。我最近在重构一个中型前端项目时深有体会&#xff1a;当修改…

作者头像 李华