如何在Kotlin中使用复合键?

时间:2017-10-19 13:22:15

标签: dictionary kotlin

在Python中,我可以使用复杂的字典键,例如:

d = {}
d[(1, 2)] = 3
print d[(1, 2)]  # prints 3

如何在Kotlin中声明并填充此类地图?

编辑:我试图宣布这样的地图,但我不知道如何填充它:

val my_map = HashMap<Pair<Int, Int>, Int>()

2 个答案:

答案 0 :(得分:4)

很简单,首先创建字典,然后插入键和值:

val (a, b):Pair<Int, String> = Pair(1, "x")

val map: HashMap<Pair<Int, String>, Int> = hashMapOf((a, b) to 1)

map[Pair(2, "y")] = 3

依此类推:))

答案 1 :(得分:1)

在Kotlin中,与Python不同,没有元组数据类型。对于两元组,有一个Pair类。对于较大的arity,您应该使用数据类。

val map: HashMap<Pair<Int, Int>, Int> = hashMapOf(Pair(1, 2) to 3)
val nullable: Int? = map[Pair(1, 2)]
val notNullable = map.getValue(Pair(1, 2))