LoginSignup
4
4

More than 5 years have passed since last update.

KotlinでHashMapを良い感じに結合する

Last updated at Posted at 2015-12-03

ライトな感じで結合する

Perlとか書いているとこんな感じでハッシュを結合することがある。

my %hoge = (a => 1, b => 2);
my %fuga = (%hoge, c => 3);

この例だけ見るとアレだけど、関数の戻り値とかをねじ込みたいとか、親クラスのやつを上書きしてちょっと追加したいとか、たまにある。これと似たようなことをKotlinで実装したメモ。

val hoge = hashMapOf("a" to 1, "b" to 2)
val fuga = hashMapOf(*hoge.toList().toTypedArray(), "c" to 3)

一応解説

hashMapOfは、引数がvarargになっている。varargな引数に渡せるのはリテラルの羅列だけでなく、実は配列もspread演算子を使うことで混ぜて渡すことができる。つまり、HashMap#toListList#toTypedArrayを使ってPairの配列にしてあげることで、hashMapOfに混ぜることができるようになる。

HashMapの例で説明したけども、hogeOf系のやつならどれでも使えるテクニックだと思う。

参考

追記

普通に+で結合できる事案だった。とんでもない盲点だった。。。orz
ngsw_taroさんありがとうございます!!!

4
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4