[解決済み] groovyでリストからMapを作成するショートカット?
2022-05-17 16:19:36
質問
何か略記が欲しいのですが。
Map rowToMap(row) {
def rowMap = [:];
row.columns.each{ rowMap[it.name] = it.val }
return rowMap;
}
GDKのものから考えると、こんな感じでしょうか。
Map rowToMap(row) {
row.columns.collectMap{ [it.name,it.val] }
}
が、ドキュメントには何も書かれていません...何か見落としているのでしょうか? それとも私があまりにも怠惰なだけなのでしょうか?
どのように解決するのですか?
最近、まさに「リストをマップに変換する」という必要に迫られました。この質問はGroovyバージョン1.7.9が登場する前に投稿されたものなので、メソッドは
collectEntries
はまだ存在していませんでした。と全く同じ働きをします。
collectMap
メソッドと同じように動作します。
が提案された
:
Map rowToMap(row) {
row.columns.collectEntries{[it.name, it.val]}
}
何らかの理由で古いGroovyのバージョンに行き詰っている場合は
inject
メソッドを使うこともできます(提案されているように
ここで
). これは、クロージャの中に一つの式だけを取り込むように少し修正したものです(単に文字数を節約するためです!)。
Map rowToMap(row) {
row.columns.inject([:]) {map, col -> map << [(col.name): col.val]}
}
は
+
演算子の代わりに
<<
.
関連
-
[解決済み】JavaでMap値をインクリメントする最も効率的な方法
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
[解決済み] HashMapを直接(リテラルに)初期化する方法は?
-
[解決済み] Java 8 List<V> を Map<K, V> に変換する。
-
[解決済み] JavaでMapをListに変換する方法は?
-
[解決済み] Javaで、オブジェクトの大きさを決定する最も良い方法は何ですか?
-
[解決済み] Javaにおける例外処理によるパフォーマンスへの影響とは?
-
[解決済み] Java 順序型マップ
-
[解決済み】Javaの「ダブルブレース初期化」の効率化?
-
[解決済み】Mac OS Xでは、Javaはどこにインストールされていますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
実行中にEclipseがポップアップする A Java Exception has occurred
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
Uncaught ReferenceError: は定義されていません。
-
Javaジェネリックを1つの記事で
-
FindBugの使用概要
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
Java基礎編 - オブジェクト指向