我爱编程

Kotlin数组方法

2018-05-31  本文已影响0人  紫薇大舅

Kotlin数组方法

序号 方法 说明 备注
01 listOf() 用于创建没有元素的空List val list:List<Int> = listOf()创建空数组时变量的类型不能省略
02 listOf(vararg elements: T) 用于创建只有一个元素的List
03 listOf(element: T) 用于创建拥有多个元素的List
04 arrayListOf() 创建一个Java中的ArrayList对象实例
05 mutableListOf() 创建一个MutableList的对象实例
06 list.toMutableList() 转换成可变的List
07 val iterator = list.iterator() 创建迭代器
08 iterator.hasNext() 检查序列中是否还有元素
09 iterator.next() 使用next()获得序列中的下一个元素
10 list.forEach forEach遍历List元素 list.forEach(::println)
11 mutableList.add(4) 向集合中添加一个元素
12 mutableList.add(0,0) 在下标为0的位置添加元素0
13 mutableList.remove(1) 删除元素1
14 mutableList.removeAt(1) 删除下标为1的元素
15 mutableList.removeAll(listOf(3,4)) 删除子集合
16 mutableList.addAll(listOf(1,2,3)) 添加子集合
17 mutableList.set(0,100) 更新设置下标0的元素值为100
18 mutableList.clear() 清空集合
19 mutableList.toList() 把可变集合转为不可变集合
20 mlist1.retainAll(mlist2) 取两个集合交集
21 list.contains(1) 判断集合中是否有指定元素,有就返回true,否则返回false
22 list.elementAt(6) 查找下标对应的元素 如果下标越界会抛IndexOutOfBoundsException
23 list.elementAtOrElse(7,{0}) 查找下标对应元素 如果越界会根据方法返回默认值
24 list.elementAtOrNull(7) 查找下标对应元素 如果越界就返回null
25 list.first() 返回集合第1个元素 如果是空集,抛出异常NoSuchElementException
26 emptyList.firstOrNull() 查找下标对应元素 如果是空集,返回null
27 list.first({it%2==0}) 返回符合条件的第一个元素 没有则抛异常NoSuchElementException
28 list.firstOrNull({it>100}) 返回符合条件的第一个元素 没有就返回null
29 list.indexOf("c") 返回指定下标的元素 没有就返回-1
30 list.indexOfFirst({it.contains("x")}) 返回第一个符合条件的元素下标 没有就返回-1
31 list.indexOfLast({it.contains("x")}) 返回最后一个符合条件的元素下标 没有就返回-1
32 list.last() 返回集合最后一个元素 空集则抛出异常NoSuchElementException
33 list.last({it==7}) 返回符合条件的最后一个元素 没有就抛NoSuchElementException
34 list.lastOrNull({it>10}) 返回符合条件的最后一个元素 没有则返回null
35 list.lastIndexOf("abc") 返回符合条件的最后一个元素 没有就返回-1
36 list.single() 该集合如果只有1个元素,则返回该元素。否则,抛异常。
37 list.single({it==1}) 返回符合条件的单个元素 如有没有符合的抛异常NoSuchElementException,或超过一个的抛异常IllegalArgumentException。
38 list.singleOrNull({it==7}) 返回符合条件的单个元素 如有没有符合或超过一个,返回null
39 emptyList.any() 如果该集合至少有一个元素,返回true,否则返回false。
40 list.any({it%2==0}) 该集合中至少有一个元素匹配谓词函数参数
41 list.all({it%2==0}) 当且仅当该集合中所有元素都满足条件时,返回true;否则都返回false。
42 list.none() 如果该集合没有任何元素,返回true,否则返回false。
43 list.none({it%2==1}) 当且仅当集合中所有元素都不满足条件时返回true,否则返回false。
44 list.count() 计算集合中元素的个数
45 list.count({it%2==0}) 计算集合中满足条件的元素的个数
46 list.reduce({sum, next->sum+next}) 从第一项到最后一项进行累计运算
47 list.reduceRight({total, s -> s+total}) 从最后一项到第一项进行累计运算
48 list.fold(100,{total, next -> next + total}) 带初始值的reduce
49 list.foldRight("xyz",{s, pre -> pre + s}) foldRight和reduceRight类似,有初始值。
50 list.forEach { value -> if (value > 7) println(value) } 循环遍历元素,元素是it
51 list.forEachIndexed { index, value -> if (value > 8) println("value of index $index is $value, greater than 8") } 带index(下标) 的元素遍历
52 list.max() 返回集合中最大的元素。
53 list.min() 返回集合中的最小元素。
54 list.maxBy({it})、list.maxBy({it*(1-it)}) 获取函数映射结果的最大值
55 list.minBy({it})、list.minBy({it*(1-it)}) 获取函数映射后返回结果的最小值所对应那个元素的值,如果没有则返回null
56 list.sumBy({it})、list.sumBy({it*it}) 获取函数映射值的总和
上一篇下一篇

猜你喜欢

热点阅读