Kotlin 面试题
目录

Kotlin 中 groupBy, associateBy, partition 等函数的用法?

· 约 3 分钟读完 · 第 115 / 200 章

推荐答案

在 Kotlin 中,groupBy、associateBy 和 partition 是常用的集合操作函数,它们分别用于不同的场景:

  • groupBy: 根据指定的键选择器函数将集合中的元素分组,返回一个 Map,其中键是选择器函数的返回值,值是对应的元素列表。
  • associateBy: 根据指定的键选择器函数将集合中的元素转换为一个 Map,其中键是选择器函数的返回值,值是元素本身。如果有多个元素具有相同的键,则最后一个元素会覆盖前面的元素。
  • partition: 根据指定的谓词函数将集合分为两个列表,第一个列表包含满足谓词的元素,第二个列表包含不满足谓词的元素。

本题详细解读

groupBy 的用法

groupBy 函数用于将集合中的元素按照某个条件分组。它接受一个 lambda 表达式作为参数,该表达式定义了分组的键。返回的结果是一个 Map,其中键是 lambda 表达式的返回值,值是对应的元素列表。

在这个例子中,groupBy 根据元素是否为奇数或偶数将列表分组。

associateBy 的用法

associateBy 函数用于将集合中的元素转换为一个 Map。它接受一个 lambda 表达式作为参数,该表达式定义了 Map 的键。如果有多个元素具有相同的键,则最后一个元素会覆盖前面的元素。

在这个例子中,associateBy 根据 name 属性将 Person 对象转换为一个 Map,并且如果有多个 Person 对象具有相同的 name,则最后一个对象会覆盖前面的对象。

partition 的用法

partition 函数用于将集合中的元素根据某个条件分为两个列表。它接受一个 lambda 表达式作为参数,该表达式定义了分区的条件。返回的结果是一个 Pair,其中第一个列表包含满足条件的元素,第二个列表包含不满足条件的元素。

在这个例子中,partition 将列表中的元素分为偶数和奇数两个列表。