で翻訳するJava 8では、一般的なタスクは、オブジェクトのリストをストリームとラムダを使用してマップに変換することです。これは、希望の動作とGuavaのようなサードパーティライブラリの可用性に応じて、さまざまな方法で実現できます。マップのリストには、手動の反復と手書きループが含まれます。 最終マップ hashmap = new Hashmap (); for(最終的な選択の選択:選択){ hashmap.put(choice.getname()、choice); } Hashmapを返します。 }
guavaベースのソリューション
Guavaは、指定されたキー抽出器に基づいてリストからマップを生成するための便利な方法、Maps.uniqueIndexを提供します。 ]
guava with java 7private MapnameMap(List choices) { final Map hashMap = new HashMap(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; }
private map
java 8 lambdasはコードをさらに単純化します:
プライベートマップ namap(litprivate MapnameMap(List choices) { final Map hashMap = new HashMap(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; }
救助のコレクター
コレクターズクラスは、マッピングリストのマッピングリストの堅牢な実装を提供します。 Tomapコレクターは、
private MapnameMap(List choices) { return Maps.uniqueIndex(choices, Choice::getName); }
値抽出因子関数(それぞれの値を取得する関数(要素)
この場合、choice :: getName and function.identity()をそれぞれ使用してキーと値を取得できます:
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3