1、创建不可变List集合
fun main() { val list = listOf("Jason", "Jack", "Jacky") println(list[2]) //getOrElse是一个安全索引取值函数,它需要两个参数 //第一个是索引值,第二个是能提供默认值的lambda表达式,如果索引值不存在的话,可用来代替异常 println(list.getOrElse(3) { "UnKnown" }) //getOrNull是kotlin提供的另一个安全索引取值函数,它返回null结果,而不是抛异常 println(list.getOrNull(3) ?: "UnKnown") }
输出结果
Jacky UnKnown UnKnown
2、创建可变的List集合
fun main() { //可变的list集合 val list = mutableListOf("Jason", "Jack", "Jacky") list.add("Jimmy") list.remove("Jack") println(list) //mutator函数:能修改可变列表的函数有个统一的名字(mutator函数) //运算符重载:普通的符号,通过运算符重载技术,让其具备特定的功能 list += "Android" println(list) list -= "Jason" println(list) //包含Jack的字符,就把包含Jack字符的元素删除掉 list.removeIf { it.contains("Jack") } println(list) list.remove("Jack") println(list) //不可变list集合,转为可变list集合 var toMutableList = listOf("Jason", "Jack", "Jacky").toMutableList() toMutableList.add("1") println(toMutableList) //可变list集合,转为不可变list集合 val toList = mutableListOf("Jason", "Jack", "Jacky").toList() println(toList) val listOf = listOf(1, 2, 15, 90) println(listOf) }
输出结果
[Jason, Jacky, Jimmy] [Jason, Jacky, Jimmy, Android] [Jacky, Jimmy, Android] [Jimmy, Android] [Jimmy, Android] [Jason, Jack, Jacky, 1] [Jason, Jack, Jacky] [1, 2, 15, 90]
3、创建不可变Set集合和可变Set集合,以及List集合和Set集合之间的转换函数:distinct
fun main() { // var set = setOf("Jason", "Jack", "Jacky", "Jack") //使用elementAt函数读取集合中的元素 // println(set.elementAt(0)) // println(set.elementAt(1)) // println(set.elementAt(2)) val mutableSetOf = mutableSetOf("Jason", "Jack1", "Jacky", "Jack") // mutableSetOf += "Jimmy" // mutableSetOf -= "Jack" // for (i in mutableSetOf) { // println(i) // } // mutableSetOf.forEach { // print("$it ") // } for (i in mutableSetOf.indices) { print(mutableSetOf.elementAt(i) + " ") } println() println("****************************") val set = setOf<String>("Jason", "test", "hello", ".net") for (index in set.indices) { print(set.elementAt(index) + " ") } // for (i in set) { // println(i) // } // set.forEach { // println(it) // } // println(mutableSetOf.elementAt(2)) println() //集合转换 //把List集合转换成Set,去掉重复元素 val list = listOf("Jason", "Jack", "Jacky", "Jack") .toSet() .toList() println(list) //distinct;List集合转Set集合,去重的一个快捷函数 println(listOf("Jason", "Jack", "Jacky", "Jack").distinct()) }
输出结果
Jason Jack1 Jacky Jack **************************** Jason test hello .net [Jason, Jack, Jacky] [Jason, Jack, Jacky]
4、数组类型
代码如下:
fun main() { val intArray = intArrayOf(10, 30, 20) //得到的int类型的数组 var toIntArray = listOf(10, 30, 40).toIntArray() println(toIntArray[0]) var arrayOf = arrayOf(File("xxx"), File("yyy")) println(arrayOf[0]) }
输出结果
10 xxx
5、创建不可变Map集合
fun main() { //to 是省略了点号和参数的特殊参数,to函数将它左边和右边的值转化为一对Pair var map = mapOf("jack" to 20, "hello" to 15, "test" to 10) // mapOf(Pair("jimmy", 20)) println(map["jack"]) //[]取值运算符,读取键对应的值,如果键不存在就返回null println(map["hh"]) //null println(map.getValue("hello")) //读取键对应的值,如果键不存在就抛出异常 println(map.getOrElse("test1") { "Unknown" }) //读取键对应的值,或者使用匿名函数返回默认值 println(map.getOrDefault("rose", 0))//读取键对应的值,或者返回默认值 /** * forEach遍历Map */ map.forEach { println("${it.key},${it.value}") } map.forEach { (key: String, value: Int) -> println("$key,$value") } }
输出结果如下:
20 null 15 Unknown 0 jack,20 hello,15 test,10 jack,20 hello,15 test,10
6、创建可变Map集合
fun main() { var mutableMapOf = mutableMapOf("jack" to 20, "hello" to 15, "test" to 10) mutableMapOf += "Jimmy" to 30 mutableMapOf.put("Jimmy", 100) mutableMapOf.getOrPut("Rose") { 18 } println(mutableMapOf) }
输出结果如下:
{jack=20, hello=15, test=10, Jimmy=100, Rose=18}