Kotlinでコレクションを扱う便利なラムダ式の紹介




どうも高妻です。Twitterでもプログラミングのことや暗号通貨のことをつぶやいているのでよかったら覗きにきてください。  

ラムダ式とは

処理を一連の流れで書くことができる言語仕様のことを言います。説明よりも実際にどう書くか見ていただきましょう。

下記サンプルは単語のリストに対して3つの処理を一連の流れで書いています。

mapIndexedでwordに対してインデックスの値を文字列連結して、sortedByDescendingで単語を降順に並び替え、最後にtakeでリストの先頭から2つのみ取得しています。

ラムダ式を使うとこのように処理を連結でき記述量を短くでき可読性が上がります。

コレクションに対してよく使う関数

mapIndexed

mapIndexedはコレクションをインデックスと要素に分けていてレートしてくれる関数です。処理した内容がそのままコレクションの要素としてリターンされてコレクションを生成します。

map()という関数もあり、これはインデックスがないだけの関数になります。

sortedBy、sortedByDescending

そーと処理を行う関数で、昇順と降順で関数が分かれています。itは要素のことなので単語自身になります。リストの要素がインスタンスの場合、itでそのインスタンスのプロパティにアクセスすることができるので何を基準にソートするのか簡単に指定できます。

take

これはシンプルだけどかなり便利ですね。引数に取得したい数だけ指定すればコレクションの先頭からその数だけ取得することができます。この処理をslice()でやろうとして配列よりも大きい値を指定してエラーになってしまう心配も無くなります。

groupBy

これは配列からMapを作るときに便利な関数です。下記ではageが同じ要素をまとめてkeyがage、valueがPersonのMapを生成しています。

まだ4つしか紹介できていないので随時追加していきます!!







コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です