当前位置: 首页 > news >正文

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]
http://www.jsqmd.com/news/753043/

相关文章:

  • 3个痛点,1个解决方案:Transmission Remote GUI让你的远程BT下载管理如此简单
  • 为什么同一篇论文知网和维普AI率差这么多:两平台检测原理差异深度解读
  • Spring Boot 3 JWT Security测试指南:如何编写完整的认证授权测试用例
  • 3分钟快速掌握WindowResizer:Windows窗口强制调整大小的终极技巧
  • Taotoken 模型广场如何帮助开发者快速选型与切换
  • 终极指南:掌握Vosk离线语音识别API的7个实战技巧与性能优化方案
  • 使用Taotoken CLI工具一键配置团队统一的模型调用环境
  • 从Startup.cs到零配置启动:.NET 9中Minimal Hosting + Configuration DSL的5步迁移路径
  • 模块化重构倒计时:C++23项目升级C++27模块的最后90天行动纲领(含自动化转换脚本v2.7.1)
  • 别再只盯着CIoU了!实测YOLOv5换上Wise-IoU v1,我的缺陷检测mAP涨了快10个点
  • GBFR Logs完全解析:碧蓝幻想Relink玩家的游戏数据分析与性能监控终极指南
  • Fish Speech-1.5开源模型实战:为Rust/Go服务提供gRPC语音合成接口
  • Translumo终极指南:免费实时屏幕翻译工具快速上手教程
  • STM32按键去抖防竞争方案
  • 别再手动盖油了!用AD20设计规则搞定过孔盖油,一劳永逸不出错
  • 观察 Taotoken 在多模型聚合调用下的路由与容灾效果
  • ExtractorSharp:5分钟掌握专业级游戏资源编辑器完整指南 [特殊字符]
  • 使用 Python 快速接入 Taotoken 并调用多模型完成聊天补全任务
  • 拆解 Warp AI Agent(四):增量知识引擎——Merkle Tree 如何让代码索引降到 O(changes)
  • JsRpc快速上手:5分钟搭建远程浏览器执行环境
  • 为什么降AI工具改写后文章更难读:改写质量和可读性权衡免费解决方案深度解读
  • 将Taotoken作为统一入口整合企业内多个AI应用场景
  • 对比自建代理与使用Taotoken聚合服务在运维复杂度上的差异
  • 别再傻傻遍历了!用Python的binascii.crc32高效破解短数据(避坑指南)
  • linux内核 虚拟地址空间如何组织
  • 在Node.js后端服务中集成Taotoken实现多轮对话与流式响应
  • 如何利用Taotoken CLI工具一键配置团队开发环境
  • 小型企业项目选型 ThinkPHP 还是 Symfony 哪个上手更快?
  • 赋能个体创业,购在数网打造三网话费增值服务新标杆 - 博客湾
  • 使用 Python 快速开始你的第一个 Taotoken 大模型调用