2017-10-19 56 views
3

在Python我可以有複雜的字典鍵一樣,例如:如何在Kotlin中使用組合鍵?

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

我如何可以聲明和填充在科特林這樣的地圖?

編輯:我想聲明像這樣的地圖,但我不知道如何來填充它:

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

這本質上並不複雜。密鑰可以是任何你喜歡的類型,包括一對。 – chris

回答

3

這很簡單,你第一次創建你的字典,然後插入鑰匙和值:

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 

等等:)

+0

確定它的工作,我不得不像這樣明確地寫「Pair」:'my_map [Pair(1,2)] = 3' – fafl

+0

@fafl太棒了!是的,一旦你創建了,你也可以像這樣添加元素,我一直都很喜歡幫助。 –

1

在科特林,不像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)) 
相關問題