Kotlin 列表教程显示了如何在 Kotlin 中使用列表。 列表是元素的一般有序集合。
Kotlin 区分只读列表和可变列表。 用listOf()
创建只读列表,用mutableListOf()
创建可变列表。
Kotlin listOf()
listOf()
方法在 Kotlin 中创建一个新的只读列表。
KotlinListOf.kt
该示例使用listOf()
创建新的单词列表。 列表的大小由size
属性确定。
Kotlin List 基础
在下一个示例中,我们有一个简单的 Kotlin List 示例。
KotlinListBasic.kt
该示例创建一个数字列表并计算一些统计信息。
使用listOf()
功能创建 Kotlin 只读列表。
我们计算值的数量,最大值,最小值,总和和平均值。
这是输出。
Kotlin 列表索引
列表的每个元素都有一个索引。 Kotlin 列表索引从零开始。 最后一个元素的索引为len-1
。
KotlinListIndex.kt
该示例介绍了 Kotlin List 索引操作。
使用get()
方法检索元素。 该方法将要检索的元素的索引作为参数。
我们还可以使用经典的 C 索引操作。
indexOf()
返回列表中单词首次出现的索引。
lastIndexOf()
返回列表中单词最后一次出现的索引。
lastIndex
属性返回列表中最后一项的索引;如果列表为空,则返回-1
这是输出。
Kotlin 列表计数
count()
方法返回列表中的元素数。
KotlinListCount.kt
该示例返回列表中值的数量,负值的数量和偶数的数量。
我们可以使用count()
方法或size
属性来确定列表中的元素数量。
count()
可以将谓词功能作为参数。 在我们的情况下,它对于小于 0 的值返回 true。
我们获得列表中的偶数个数。
这是输出。
Kotlin 列表第一个和最后一个元素
我们有方法来获取列表的第一个和最后一个元素。
KotlinListFirstLast.kt
该示例创建一个单词列表。 我们得到列表的第一个和最后一个元素。
我们用first()
获得第一个元素。
我们用last()
获得最后一个元素。
我们以findLast()
检索以’c’开头的列表的最后一个元素。
我们以first()
检索以’c’开头的列表的第一个元素。
这是输出。
Kotlin 列表迭代
列表迭代或列表循环是一个遍历列表元素的过程。
KotlinListIterate.kt
该示例显示了 Kotlin 中遍历列表的五种方法。
forEach()
对每个列表元素执行给定的操作。 我们为它传递了一个匿名函数,该函数将打印当前元素。
我们用for
循环列表。 for
循环逐个遍历列表。 在每个循环中,word
变量指向列表中的下一个元素。
另一种for
循环利用列表的大小。 until
关键字创建一系列列表索引。
使用forEachIndexed()
方法,我们遍历具有每次迭代可用索引和值的列表。
最后一种方法是使用ListIterator
和while
循环。
这是输出。
Kotlin 列表排序
以下示例显示如何在 Kotlin 中对列表值进行排序。 由于使用listOf()
创建的列表是只读的,因此这些方法不会更改列表,但会返回新的修改后的列表。
Car.kt
这是一个Car
bean。
KotlinListSorting.kt
该示例按升序和降序对列表值进行排序,反转列表元素,并按名称对汽车对象进行排序。
sorted()
方法返回根据自然排序顺序排序的所有元素的列表。
sortedDescending()
方法返回所有元素按照其自然排序顺序降序排列的列表。
reversed()
方法返回具有相反顺序元素的列表。
我们创建汽车对象列表。 这些对象可以按名称或价格排序。
使用sortedBy()
,我们按名称对汽车进行升序排序。
使用sortedByDescending()
,我们按名称对汽车进行降序排序。
这是输出。
Kotlin 列表包含
使用contains()
方法,我们可以检查列表是否包含指定的元素。
KotlinListContains.kt
可以检查列表是否包含一个或多个元素。
在这里,我们检查nums
列表是否包含 4。该方法返回布尔值。
此行检查列表是否包含两个值:1 和-1。
这是输出。
Kotlin 可变列表
使用mutableListOf()
,我们可以在 Kotlin 中创建可变列表。 我们可以在可变列表中添加新元素,删除元素和修改元素。
KotlinListMutable.kt
该示例创建一个可变列表并提供其几种方法。
我们创建一个包含三个整数元素的可变列表。
add()
在列表末尾添加一个新元素。 addAll()
在列表的末尾添加了多个元素。
shuffle()
方法随机重新排列列表元素。 改组发生在原地; 即原始列表已修改。
元素按其自然升序排序。
removeAt()
方法删除指定索引处的元素。 remove()
方法从列表中删除第一次出现的指定元素。
replaceAll()
方法使用给定功能修改列表的所有元素。 在我们的例子中,我们创建一个匿名函数,将每个元素乘以 2。
retainAll()
方法仅保留参数中指定的元素; 其他被删除。
fill()
方法将所有元素替换为给定值。
set()
方法用给定元素替换列表中指定位置的元素。
clear()
方法从列表中删除所有元素。
使用isEmpty()
方法,我们检查列表是否为空。
这是输出。
Kotlin 列表切片
切片是列表的一部分。 可以使用slice()
方法创建切片。 该方法获取要拾取的元素的索引。
KotlinListSlice.kt
在示例中,我们创建一个整数列表。 从列表中,我们产生两个切片。
我们使用范围运算符创建包含索引为 1、2 和 3 的元素的列表切片。所有索引都包括在内。
在第二个示例中,我们显式提供索引列表。
这是输出。
Kotlin 列表上限
下面的示例处理查找列表的最大值。
Car.kt
这是一个Car
bean。
KotlinListMax.kt
该示例查找整数列表和汽车对象列表的最大值。
可以使用max()
轻松找到整数列表的最大值。
处理对象时,需要指定用于查找最大值的属性。 maxBy()
方法具有选择器功能,用于选择汽车的price
属性。
这是输出。
Kotlin 列表过滤器
过滤是一种操作,只有满足某些条件的元素才能通过。
Car.kt
这是一个Car
bean。
KotlinListFilter.kt
该示例展示了对 Kotlin 列表的过滤操作。
filter()
方法采用谓词功能作为参数。 谓词给出了元素必须满足的条件。 我们过滤掉长度等于 3 的单词。
filterNot()
的作用相反:它允许通过不符合给定条件的元素。
这些行过滤掉价格大于 10000 的汽车对象。
这是输出。
Kotlin 列表映射
映射操作通过在列表的每个元素上应用转换函数来返回修改后的列表。
KotlinListMap.kt
我们有一个整数列表。 使用map()
方法,我们将每个列表元素乘以 2。
这是示例输出。
Kotlin 列表归约
归约是将列表值聚合为单个值的终端操作。 reduce()
方法对一个累加器和每个元素(从左到右)应用一个函数,以将其减小为单个值。
KotlinListReduce.kt
在示例中,我们对整数和字符串列表使用 reduce 操作。
我们计算值的总和。 total
是累加器,next
是列表中的下一个值。
reduceRight()
从最后一个元素开始累加值,并从右到左对每个元素和当前累加器值进行运算。
这是输出。
列表折叠
折叠操作类似于缩小操作。 折叠是将列表值聚合为单个值的终端操作。 区别在于折叠从初始值开始。
KotlinListFold.kt
我们有一份支出列表。 这些费用适用于初始可用现金金额。
利用fold()
,我们从cash
推算出所有费用,并返回剩余值。
这是我们减去可用金额的所有费用后的余额。
Kotlin 列表分块
有时,在进行归约时,我们需要使用列表中的更多元素。 我们可以使用chunked()
方法将列表分成列表列表。
KotlinListChunked.kt
在示例中,我们有六个值的列表。 我们要实现以下操作:1*2 + 3*4 + 5*6
。 为此,我们需要将列表分成两个值的块。
我们将列表分为两个元素的列表,然后对其进行折叠。 next
是我们可以在其中使用索引操作的列表。
这是示例的输出。
Kotlin 列表分区
分区操作将原始集合拆分为成对的列表。 第一个列表包含其指定谓词产生 true 的元素,而第二个列表包含其谓词产生 false 的元素。
KotlinListPartition.kt
我们有一个整数列表。 使用partition()
方法,我们将列表分为两个子列表; 一个包含负值,另一个包含正值。
使用解构声明,我们一次性将列表分为两部分。
这是输出。
Kotlin 列表分组
groupBy()
方法通过将给定选择器函数返回的键应用于原始列表的元素进行分组,这些键应用于每个元素。 它返回一个映射,其中每个组键都与对应元素的列表相关联。
KotlinListGroupBy.kt
该示例显示了如何使用groupBy()
方法。
这些行创建了一个地图,该地图具有两个键:“偶数”和“奇数”。 “偶数”指向偶数值列表,“奇数”指向奇数值列表。
在这里,我们创建一个带有整数键的映射。 每个关键字将具有一定长度的单词分组。
这是输出。
Kotlin 列表any()
如果至少一个元素与给定的谓词函数匹配,则any()
方法返回 true。
KotlinListAny.kt
该示例显示any()
的用法。
在这里,我们检查列表中是否至少包含一个负值。 该方法返回一个布尔值。
Kotlin 列表all()
如果所有元素都满足给定的谓词功能,则all()
返回 true。
KotlinListAll.kt
该示例显示all()
的用法。
在这里,我们测试nums
列表是否仅包含正值。
Kotlin 列表删除
通过放置操作,我们从列表中排除了一些元素。
KotlinListDrop.kt
该示例显示了不同放置操作的用法。
使用drop()
方法,我们排除了前三个元素。
使用dropLast()
方法,我们排除了最后三个元素。
使用dropWhile()
方法,我们排除了满足给定谓词功能的前 n 个元素。
使用dropLastWhile()
方法,我们排除了满足给定谓词功能的最后 n 个元素。
这是输出。
Kotlin 列表提取
提取操作是放置操作的补充。 通过选择一些元素,take 方法形成一个新列表。
KotlinListTake.kt
该示例显示了各种 take 方法的用法。
take()
方法创建一个具有原始列表的前三个元素的新列表。
takeLast()
方法将最后一个元素放入新列表中。
takeWhile()
采用满足谓词功能的前 n 个元素。
如果满足谓词功能中的条件,则takeIf()
方法将使用列表中的所有元素。
这是输出。