私は例えばのような複雑な辞書のキーを持つことができます。Kotlinでどのようにコンポジットキーを使用できますか? Pythonで
d = {}
d[(1, 2)] = 3
print d[(1, 2)] # prints 3
どのように宣言し、Kotlinで、このような地図を読み込むことができますか?
編集:私はこのような地図を宣言しようとしたが、私はそれを移入する方法がわからない:
val my_map = HashMap<Pair<Int, Int>, Int>()
私は例えばのような複雑な辞書のキーを持つことができます。Kotlinでどのようにコンポジットキーを使用できますか? Pythonで
d = {}
d[(1, 2)] = 3
print d[(1, 2)] # prints 3
どのように宣言し、Kotlinで、このような地図を読み込むことができますか?
編集:私はこのような地図を宣言しようとしたが、私はそれを移入する方法がわからない:
val my_map = HashMap<Pair<Int, Int>, Int>()
それは簡単です、あなたが最初にあなたの辞書を作成し、キーと値を挿入します。
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
ので、Kotlinで:)
これはうまくいきました。私は明示的に "Pair"と書く必要がありました: 'my_map [Pair(1,2)] = 3' – fafl
@fafl素晴らしい!はい、あなたが作成した後、あなたはまた、そのような要素を追加することができます、私はいつも助けて大好きです。 –
に、Pythonのとは違って何のタプルデータ型はありません。 2タプルの場合、Pairクラスがあります。より大きいアライリティのためには、データクラスを使用する必要があります。
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))
本質的に複雑ではありません。キーには、ペアを含め、好きなタイプを指定できます。 – chris