Kotlin如何使用另一个列表的元素过滤列表?
Kotlin列表过滤:保留ID在指定列表中的元素
要过滤posts列表,只保留那些id存在于ids列表中的Post对象,最简单的写法是直接用in操作符或者contains方法:
val output = posts.filter { it.id in ids } // 等价写法 val output = posts.filter { ids.contains(it.id) }
如果你的ids列表元素数量比较多,或者需要频繁执行这个过滤操作,推荐先把ids转成HashSet——因为List.contains()的时间复杂度是O(n),而HashSet.contains()是O(1),能大幅提升查找效率:
val idSet = ids.toHashSet() val output = posts.filter { idSet.contains(it.id) }
这样就能得到所有符合条件的Post对象了。
内容的提问来源于stack exchange,提问作者HavanaSun
相关产品推荐
相关产品推荐

