Kotlin-集合

3.1集合

只读List集合

//使用listOf创建list集合
fun main(args:Array<String>){
    val device1= listOf("显示器","键盘","鼠标","主机")
    val device2=listOf("联想笔记本","戴尔笔记本","外星人笔记本")
    val devices= listOf(device1,device2)

    println("取出index:${devices.indexOf(device1)}的value值:${devices.get(1)}取出最后一个出现的位置${devices.lastIndexOf(device2)}")

    devices.forEach (::println)

    for(device in devices){
        println(device)
    }
}

可变List集合

在Kotlin中,对MutableList集合常见的API为

(1)修改操作

fun add(E)

fun remove(E)

(2) 批量操作

fun addAll(Collection)

fun removeAll(Collection)

retainAll(Collection)

fun clear()

(3)索引操作

fun set(Int,E)

fun add(Int,E)

fun removeAt(Int):E

(4)迭代器

fun listIterator():MutableListIterator

fun listIterator(Int):MutableListIterator

fun subList(fromIndex:Int,toIndex:Int):MutableList

 

3.3集合之Set

只读Set集合

//创建一个只读的Set集合
fun main(args:Array<String>){
    val sets=setOf(1,3,2,1,3,2,2,3,1,4)
    sets.forEach(::println)
}

可变Set集合

//创建一个可变的Set集合
fun main(args:Array<String>){
    val mset=mutableSetOf(1,2,3)
    println(mset)
    mset.add(4)

    println(mset)
    mset.add(4)

    println(mset)
    
    mset.remove(2)
    println(mset)
}

3.4集合--Map

//创建两个map集合,并对集合进行常规操作
fun main(args:Array<String>){
    val map=mapOf(1 to "one",2 to "two",3 to "three")
    val mmap=mutableMapOf(1 to "one",2 to "two",3 to "Three")

    println("映射元素的数量"+map.size)
    println("Map元素中key的集合" +map.keys.toList())

    println("Map元素中Value的集合"+map.values.toList())

    println(map.entries)
    println(map.get(1))

    map.forEach{key,value->println("Map中元素的键值对的集合key:${key},value:${value}")}

    map.forEach{println("Map中元素的键值对的集合key:${it.key},value:${it.value}")}

    if(!map.isEmpty()){
        println("Map集合不为空")
    }
    if(map.containsKey(1)){
        println("Map包含key的值为1")
    }
    if(map.containsValue("one")){
        println("Map包含value值为one")
    }
    println(mmap)
    mmap.put(4,"four")
    println(mmap)

    val addall=mapOf(5 to "five",6 to "six")
    mmap.putAll(addall)
    println(mmap)
    mmap.remove(1)
    println(mmap)
    mmap.clear()
    println(mmap)
}

3.5 集合操作符

//创建一个集合,使用总数操作进行操作
fun main(args:Array<String>){
    val list=listOf(1,2,3,4,5,6,7,8,9)
    println(list.any{it>10})
    println(list.all{it in 1..10})
    println(list.sumBy{it*it})
            println(list.min())
        println(list.max())
        println(list.minBy{it*it})
}

过滤操作符 

//创建一个集合,使用过滤操作符进行操作
fun main(args:Array<String>){
    //定义
    val list=listOf(1,2,3,4,5,6,7.8,9)
    //过滤操作符
    println(list.filter{it!=5})
    println(list.filterNot{it==5})
    println(list.filterNotNull())
    println(list.take(4))
    println(list.takeLast(4))
    //println(list.takeLastWhile {it < 5  })
    println(list.drop(4))
    //println(list.takeWhile { it < 3 })
    println(list.slice(listOf(1,2,3)))
}

映射操作符

//使用映射操作符对集合进行操作
fun main(args:Array<String>){
    val list1=listOf(1,2,3,4,5)
    val list2=listOf(6,7,8,9,10)

    //映射操作符
    println(list1.map{it+1})
    println(list1.mapIndexed{index,i->index*i})

    println(list1.mapNotNull { it+5 })
    //println(listOf(list1,list2)).flatMap{ it->it})
    println(list1.flatMap{listOf(it,it+1)})
    println(listOf(list1.groupBy { if(it<3)"big" else "small" }))
}

顺序操作符

fun main(args:Array<String>){
    val list1=listOf(1,5,9,7,26,74,32,47,41,42,6)
    val list2=listOf(11,56,8,4,6,4,2,69,7)
    println(list1.reversed())
    println(list1.sorted())
    println(list1.sortedBy { it%2 })
    println(list1.sortedDescending())
    println(list1.sortedByDescending { it%2 })
}

元素操作符

fun main(args:Array<String>){
    val list1= listOf(1,2,3,4,5,6,7,8,9,10)
    println(list1.contains(14))
    println(list1.elementAt(4))
    println(list1.elementAtOrElse(14,{it+3}))
    println(list1.elementAtOrNull(14))
    println(list1.first())
    println(list1.first{it%3==0})
    println(list1.firstOrNull{it>14})
    println(list1.indexOf(5))
    println(list1.indexOfFirst { it==14 })
    println(list1.lastOrNull { it==8 })
    println(list1.single{it==8})
    println(list1.singleOrNull{it==8})



}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值