User(3, “王五”),
User(4, “赵六”)
)
val userWithId3 = users.single { it.id == 3 }
println(userWithId3) // User(id=3, name=王五)
val userWithId1 = users.find { it.id == 1 }
println(userWithId1) // User(id=1, name=张三)
}
chunked函数将列表分解为多个子列表
在很多情况下,你有一个大列表,你想把它分成更小的部分,然后在这些子列表上执行一些操作。这个时候可以使用chunked函数。
//将列表分解为多个较小大小的子列表
fun breakListMultiple(){
val numList = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val chunkedLists = numList.chunked(3)
println(chunkedLists) // [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
}
复制数组相关函数
你可以通过使用各种函数来复制现有的数组,例如:
- copyInto
copyInto可以把一个数组的元素替换成另一个数组,或者,如果目标数组由于大小限制或索引越界而不能保存原始数组的元素,则会出现异常。
//复制数组
fun copyIntoArray(){
val arrayOne = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val arrayTwo = arrayOf(11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
//将数组arrayOne中从索引0开始(即第1个元素)取出四个元素(即前四个元素)替换数组arrayTwo从索引2开始(即第三个元素)之后的4个元素
arrayOne.copyInto(destination = arrayTwo, destinationOffset = 2, startIndex = 0, endIndex = 4)
arrayTwo.forEach {print("$it ")} // 11 12 1 2 3 4 17 18 19 20
}
- copyOfRange(fromIndex, toIndex)
返回一个新数组,该数组是原数组指定范围的副本。
fun copyOfRangeArray(){
val arrayRange = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val copyOfRange = arrayRange.copyOfRange(0, 6)
copyOfRange.forEach { print("$it ") }//1 2 3 4 5 6
}
- copyOf() or copyOf(newSize)
回一个新数组,它是原数组的副本,大小调整为给定的newSize,或者如果newSize未被指定,则整个数组将被复制。
fun copyOfArray(){
val arrayData = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val copyOf = arrayData.copyOf()//1 2 3 4 5 6 7 8 9 10
copyOf.forEach { print("KaTeX parse error: Expected 'EOF', got '}' at position 7: it ") }̲ println() val …it ") }
}
更改集合类型
根据情况,您可以更改集合的类型。在这里,您可以通过创建一个新集合或引用旧集合来将一个集合的类型更改为另一个集合。例如
- toIntArray, toBooleanArray, toLongArray, toShortArray, toByteArray, toDoubleArray, toList, toMap, toSet, toPair
等可用于将一个集合的类型更改为另一个集合的类型。