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

kotlin 将一个list按条件分为两个list(partition )

在这里插入图片描述

前言

在安卓开发过程中,我们经常需要将一个列表按照特定条件拆分为两个子列表。随着对语言的深入理解,我发现了一些更高效、更简洁的实现方式,现在与大家分享。

实现

传统Java实现

假设我们有以下列表需要处理:

List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("1");
list.add("2");

使用Java进行条件拆分

List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
list.forEach(item -> {if (Objects.equals(item, "1")) {list1.add(item);} else {list2.add(item);}
});

使用Java Stream API优化

List<String> list1 = list.stream().filter(item -> Objects.equals(item, "1")).collect(Collectors.toList());
List<String> list2 = list.stream().filter(item -> !Objects.equals(item, "1")).collect(Collectors.toList());

Kotlin实现

val list: MutableList<String> = ArrayList()
list.add("1")
list.add("2")
list.add("1")
list.add("2")val list1: List<String> = list.filter { it == "1" }
val list2: List<String> = list.filter { it != "1" }

更简洁的Kotlin实现

val (list1, list2) = list.partition { it == "1" }

相关文章:

  • centos 9 Kickstart + Ansible自动化部署 —— 筑梦之路
  • 阅读笔记---城市计算中用于预测学习的时空图神经网络研究综述
  • JVM的面试相关问题
  • List优雅分组
  • Python打卡DAY31
  • STM32+ESP8266+ONENET+微信小程序上传数据下发指令避坑指南
  • .NET 10 - 尝试一下Minimal Api的Validation新特性
  • LangChain4j入门(六)整合提示词(Prompt)
  • RK3588 ArmNN CPU/GPU ResNet50 FP32/FP16/INT8 推理测试
  • .NET外挂系列:3. 了解 harmony 中灵活的纯手工注入方式
  • 如何自学FPGA设计?
  • 2.4.2死锁的处理策略-预防死锁
  • DB31/T 1552-2025《居民电子健康档案应用系统等级评估指南》:上海地方标准全面解析
  • notepad++
  • 【设计模式】基于 Java 语言实现工厂模式
  • 替换word中的excel
  • OpenCV 第6课 图像处理之几何变换(重映射)
  • 水利数据采集MCU水资源的智能守护者
  • numpy数组的复数和时间的操作
  • 软考软件评测师——黑盒测试测试方法
  • 广西隆林发生一起山洪灾害,致4人遇难
  • 国家发改委:城市更新项目必须建立多元化多层级资金投入机制
  • 贯彻落实《生态环境保护督察工作条例》,充分发挥生态环境保护督察利剑作用
  • 俄乌刚谈完美国便筹划与俄乌领导人通话,目的几何?
  • 上海这场有温度的“人才集市”,为更多人才搭建“暖心桥”
  • 芬兰西南部两架直升机相撞坠毁,第一批救援队已抵达现场