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}) | 获取函数映射值的总和 |