kotlin 键值对数组
时间: 2024-05-29 16:06:22 浏览: 110
在 Kotlin 中,我们可以使用键值对数组来表示一组数据,它由键和值两部分组成,键和值之间使用冒号(:)连接。可以使用 arrayOf() 函数来创建一个键值对数组,示例如下:
```
val map = arrayOf("key1" to "value1", "key2" to "value2", "key3" to "value3")
```
上面的代码创建了一个包含三个键值对的数组,每个键值对都有一个键和一个值。我们可以通过键来访问对应的值,例如:
```
println(map.second) // 输出 value1
```
其中 map 表示数组中第一个元素(也就是第一个键值对),.second 表示获取该键值对的值。
相关问题
kotlin 数组使用 sortby
在Kotlin中,`sortBy()`函数是用来对数组或列表按照指定的键值进行排序的高阶函数。它通常用于那些元素内部有一个可以用于排序的标准属性的情况。这个方法接受一个lambda表达式作为参数,该表达式返回每个元素的比较依据。
例如,假设你有一个包含`Person`对象的数组,每个`Person`都有一个`age`属性,你可以这样做:
```kotlin
data class Person(val name: String, val age: Int)
val people = arrayOf(Person("Alice", 25), Person("Bob", 30), Person("Charlie", 20))
people.sortBy { it.age } // 按照年龄升序排序
// 输出:[Person(name="Charlie", age=20), Person(name="Alice", age=25), Person(name="Bob", age=30)]
```
如果你需要降序排列,可以在lambda表达式中加入`reversed()`:
```kotlin
people.sortBy { it.age }.sortedByDescending { it.age }
```
使用kotlin解答这个题目:2418. 按身高排序 提示 简单 83 相关企业 给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。 对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。 请按身高 降序 顺序返回对应的名字数组 names 。 示例 1: 输入:names = ["Mary","John","Emma"], heights = [180,165,170] 输出:["Mary","Emma","John"] 解释:Mary 最高,接着是 Emma 和 John 。 示例 2: 输入:names = ["Alice","Bob","Bob"], heights = [155,185,150] 输出:["Bob","Alice","Bob"] 解释:第一个 Bob 最高,然后是 Alice 和第二个 Bob 。 提示: n == names.length == heights.length 1 <= n <= 103 1 <= names[i].length <= 20 1 <= heights[i] <= 105 names[i] 由大小写英文字母组成 heights 中的所有值互不相同
```kotlin
fun sortByHeight(names: Array<String>, heights: IntArray): Array<String> {
val map = mutableMapOf<Int, String>()
for (i in names.indices) {
map[heights[i]] = names[i]
}
return map.toSortedMap(reverseOrder())
.values.toTypedArray()
}
```
首先将名字和身高对应起来,放入一个 map 中。然后使用 `toSortedMap()` 将 map 按照键值排序,默认是升序,这里使用 `reverseOrder()` 使其降序排列。最后只需要返回排好序的名字数组即可。
阅读全文