欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > kotlin distinctBy 使用

kotlin distinctBy 使用

2024/11/30 7:32:26 来源:https://blog.csdn.net/HongHuaZu/article/details/140254920  浏览:    关键词:kotlin distinctBy 使用

distinctBy 是 Kotlin 中的一个函数,它允许你根据特定的键或属性对列表进行去重。它会保留第一次出现的元素,后续重复的元素将被过滤掉。

以下是使用 distinctBy 的一些例子:

示例 1: 根据对象的属性去重

假设你有一个包含对象的列表,你希望根据对象的某个属性进行去重:

data class Person(val name: String, val age: Int)val people = listOf(Person("Alice", 30),Person("Bob", 25),Person("Alice", 35),Person("Charlie", 30)
)val distinctPeopleByName = people.distinctBy { it.name }println(distinctPeopleByName)  
// 输出: [Person(name=Alice, age=30), Person(name=Bob, age=25), Person(name=Charlie, age=30)]

在这个例子中,distinctBy 根据 name 属性对列表进行去重。

示例 2: 根据计算出的键去重

你也可以根据一个计算出的键来去重:

val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9)val distinctByEvenOdd = numbers.distinctBy { it % 2 }println(distinctByEvenOdd)  
// 输出: [1, 2]

在这个例子中,distinctBy 根据数字是奇数还是偶数进行去重。

示例 3: 根据多个属性去重

如果你需要根据多个属性来去重,可以创建一个组合键:

data class Person(val name: String, val age: Int)val people = listOf(Person("Alice", 30),Person("Alice", 30),Person("Bob", 25),Person("Alice", 35),Person("Charlie", 30)
)val distinctPeopleByNameAndAge = people.distinctBy { Pair(it.name, it.age) }println(distinctPeopleByNameAndAge)  
// 输出: [Person(name=Alice, age=30), Person(name=Bob, age=25), Person(name=Alice, age=35), Person(name=Charlie, age=30)]

在这个例子中,distinctBy 根据 nameage 的组合键进行去重。

通过使用 distinctBy,你可以方便地根据任意属性或计算出的键来对列表进行去重操作。

---- 文章由 ChatGPT 生成

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com