kotlin list查重
时间: 2024-06-23 22:00:50 浏览: 166
在 Kotlin 中,List 查重可以通过几种方法来实现,这里提供两种常见的方法:
1. 使用 `distinct()` 函数:
`distinct()` 函数返回一个新的列表,其中包含原列表中不重复的元素。这是最简单直接的方法,如果列表中的元素是不可变的(如 Integer 或 String),那么它可以按值高效地去除重复。
```kotlin
val list: List<String> = listOf("a", "b", "c", "a", "d")
val uniqueList = list.distinct()
```
2. 使用 `groupingBy()` 和 `eachCount()`:
如果需要保留原列表并知道每个唯一元素的计数,可以使用 `groupingBy()` 函数将相同值的元素分组,然后用 `eachCount()` 计算每个组的大小。
```kotlin
val list: List<String> = listOf("a", "b", "c", "a", "d")
val (counts, duplicates) = list.groupingBy { it }.eachCount().partition { it.value > 1 }
```
`duplicates` 列表将包含重复的元素,`counts` 是一个映射,键是唯一的元素,值是它们在列表中出现的次数。
相关问题
kotlin 数组查重
在Kotlin中,数组查重可以通过几种方法实现。一种常见的做法是使用HashSet,因为HashSet的特性就是不包含重复元素。下面是使用HashSet来查找数组中重复元素的一个简单示例:
```kotlin
fun findDuplicates(arr: IntArray): List<Int> {
val set = HashSet<Int>()
return arr.filter { !set.add(it) }
}
```
在这个函数中,`filter`方法接收一个谓词,对于数组中的每个元素,如果该元素不在HashSet中(即`!set.add(it)`为真),那么它会被包含在返回的结果列表中,因为这意味着它是第一次被添加到集合中,不是重复的。反之,如果添加失败(即元素已存在),`add`会返回`false`,那么这个元素会被过滤掉。
阅读全文