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})
}