Kotlin 1.4.0 数组与集合更新笔记

集合

1、setOfNotNull() :以此方式创建一个非空Set集合!

fun main(args: Array<String>) {
    val set = setOfNotNull(null, 1, 2, 3, null)
    val list= listOfNotNull(null,1,2,3,null)
    println(set)
    println(list)
}

 

 

2、shuffled():生成随机数!

fun main(args: Array<String>) {
    val numbers = (0 until 50).asSequence()
    val result = numbers.shuffled().take(5)
    println(result.toList()) //five random even numbers below 100
}

 

3、Indexed():一般用于集合的 onEach() and flatMap()的扩展,用于打印索引和集合元素

fun main(args: Array<String>) {
    listOf("a", "b", "c", "d").onEachIndexed { index, item ->
        println("$index:$item")
    }
    println()
    listOf("hello", "Kotlin", "world").mapIndexed { index, item ->
        println("$index:$item")
    }
}

 

4、runningFold() 集合元素累加计算 的初始值

fun main(args: Array<String>) {

    val numbers = mutableListOf(0, 1, 2, 3, 4, 5)
    val runningFoldSum = numbers.runningFold(10) { sum, item -> sum + item }

    println(runningFoldSum)
}

解释:10 可以理解为集合头部、新添加了一个元素10

注意打印集合长度比原有的多了一位!

 

数组

1、

fun main(args: Array<String>) {

   val letters = arrayOf("k", "o", "t", "l", "i", "n")
   val letters1 = arrayOf(1,2,3,4,6,5)
   letters.onEach {
      print(it)
   }
   println()
   letters.shuffle()//随机
   println("shuffle:${letters.contentToString()}")
   letters.reverse(0, 3)//范围反转
   println("reverse:${letters.contentToString()}")
   letters1.sortDescending()//将数组降序排列
   println("sortDescending:${letters1.contentToString()}")
   letters1.sort()//将数组降升序序排列
   println("sort:${letters1.contentToString()}")
}

结果:

 

2、这个叼-ArrayDeque 类似于List集合、官方大致理解:双端队列、既可以操作集合头尾部数据!

fun main(args: Array<String>) {
   val deque = ArrayDeque(listOf(1, 2, 3))

   deque.addFirst(0)
   deque.addLast(4)
   println(deque) // [0, 1, 2, 3, 4]

   println(deque.first()) // 0
   println(deque.last()) // 4

   deque.removeFirst()
   deque.removeLast()
   println(deque) // [1, 2, 3]
}

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值