kotlin集合操作

kotlin集合操作

  • 集合取元素
  1. 位置取elementAt(int index) //标准位置取法,等价get() list[int index],取到范围之外的元素会抛异常。安全变体:elementAtOrNull()超出范围返回null,elementAtOrElse()接收一个函数,超出范围返回该函数的值。
  2. 条件取first(fun())//取首个符合条件的元素,last(fun())//取末尾符合条件的元素,没有找到抛异常,安全变体:firstOrNull()和lastOrNull()未取到返回null,等价于find()和findLast()
  3. 判断存在contains()//是否包含单个元素,containsAll()//是否包含多个元素的集合。
  • 集合聚合操作
  1. maxBy(filter())/minBy(filter())//查找符合过滤函数的最大或最小值。
  2. maxWith(compataror)/minWith(comparator)//查找符合comparator的最大或最小元素。
  3. sumBy(operator())//对每个元素执行operator函数后的返回值求和。变体:sunByDouble(operator():Double):Double
  • 集合写操作

同时支持写函数和写操作符

  1. add() +=

  2. addAll(Iterable/Sequence/Array) Set和List可以互写。

  3. remove()移除首个相同的元素

  4. removeAll(){}移除符合条件的所有元素

  5. retainAll(){}保留符合条件的所有元素,其余全移除。

  • 集合的排序方法
  1. sortBy()接收一个提供排序依据的函数
  2. sortWith()接收一个Comparator对象
  3. kotlin标准库提供一个函数compareBy(),接收一个提供排序依据的函数,返回一个Comparator对象。
  4. 不可变集合倒序函数reversed()和asReversed()都是返回一个集合,同时不影响原集合的数据,区别是asReversed()返回原集合倒序的元素视图,更轻量,是更好的选择。
  5. 可变集合使用asReversed()函数,会改变原集合的数据,同时返回原集合的引用。可变集合倒序最好选择reversed()函数,不改变原集合数据,返回的是原集合的数据拷贝。
  • Set相关操作
  1. union 合并merge操作,合并后顺序仍然按照原来的排序规则???
  2. SetA intersect SetB查找俩集合相交的元素
  3. SetA subtract SetB查找集合SetA中独有的元素。
  4. 这些方法也是可以用到list上,这样会忽略其中的重复元素。
  • Map的操作
  1. plus/minus(pair(key,value)/Map)key在左边map中不存在时,为增加操作,key已经存在时,为更新操作。
  2. 写操作:put(key,value)添加或者更新元素,putAll(Map/Pair[]/Iterable/Sequence/Array)批量添加或更新,等价操作是+=和Map[key]=value,移除操作remove(key/Pair(key,value)),提供的key和value必须同时匹配,根据key移除map.keys.remove(key),根据value移除map.values.remove(value),只移除遇到的首个匹配的value值。等价操作是-=。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 7,046评论 0 4
  • 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:V...
    joshul阅读 2,844评论 0 2
  • 四、集合框架 1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。生活中很多数据的描述都采...
    佘大将军阅读 4,136评论 0 2
  • Java集合类可用于存储数量不等的对象,并可以实现常用的数据结构如栈,队列等,Java集合还可以用于保存具有映射关...
    小徐andorid阅读 5,958评论 0 13
  • 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:V...
    Oneisall_81a5阅读 4,363评论 0 11