私はFooオブジェクトのArrayListを持っています。 FooのプロパティはString nameとint ageです。 私は同じ名前の2つ以上を望んでいないので、同じ名前のときは最高の年齢だけを保ちます。 私はJavaで動かすためのアイデアを探しています。ArrayListのオブジェクトをフィルターにかける
1
A
答えて
2
- あなたが出会った現在の最高年齢のFooを追跡するためのハッシュテーブルを作成します。
- ArrayListのループオーバー。各Fooの場合:
- Hashtableに指定された名前のアイテムが含まれていない場合は、その名前をキーとして追加します。
- Hashtableに指定された名前のFooが含まれている場合、その年齢をチェックします。
- 現在のFooの年齢がHashtableのFooの年齢よりも大きい場合は、HashtableのFooを探しているものに置き換えます。
0
プレイスHashMap<String,Foo>
にArrayList<Foo>
各(名前、年齢)対。 HashMap
に既に同じ名前のキーが含まれている場合は、年齢を比較し、それに応じて置き換えます。
その後、ArrayList
の要素をHashMap
の要素に置き換えます。
HashMap<String,Foo> hashmap = new HashMap<String,Foo>();
for(Foo foo : arraylist) {
if(!hashmap.contains(foo.name) || hashmap.get(foo.name).age < foo.age)
hashmap.put(foo.name, foo);
}
arraylist.clear();
for(String name : hashmap.keySet()) {
arraylist.add(hashmap.get(name));
}
0
Map<String , Foo> foos = new HashMap<String , Foo>();
for (Foo foo : listFoos) {
Foo currentFoo = foos.get(foo.getName());
if (currentFoo == null) {
foos.add(foo.getName(), foo);
continue;
}
if (currentFoo.getAge() > foo.getAge())
continue;
foos.put(foo.getName() , foo);
}
nameプロパティを使用するためにはFooにイコールとhashCode()を実装します。
関連する問題
- 1. Azureオブジェクトをループしてタグにフィルターをかける
- 2. Linqのヌル値をフィルターにかける
- 3. Magento:ステータス別にフィルターをかける
- 4. オブジェクトのSqlalchemyフィルター
- 5. Pythonの "フィルター"オブジェクトの長さを見つける方法
- 6. リストを入力する際に、フィルターのスペースでフィルターをかける方法は?
- 7. Android SearchオブジェクトのArrayListの1つだけ、オブジェクトのインデックスを返す
- 8. JSON /オブジェクトのAngularJSフィルター
- 9. インテントによるオブジェクトのArrayListの受け渡し - Java(Android)
- 10. オブジェクトをArraylistにDAO
- 11. ArrayListには、オブジェクト
- 12. 価格でフィルターをかける
- 13. 別のオブジェクトタイプの既存のArrayListにArrayListオブジェクトを追加する
- 14. エラーが発生する配列の値をフィルターにかける
- 15. perl内の特定のハッシュタグをフィルターにかける
- 16. 無限のモナド値のリストをフィルターにかける
- 17. Wordpress:AFCはリピータの過去の日付をフィルターにかける
- 18. テンソル内のゼロ以外の値をフィルターにかける
- 19. 私のアプリのログキャスターをフィルターにかける方法
- 20. Django templatetags:フィルター内のオブジェクト
- 21. Djangoフィルターの制限オブジェクト
- 22. 問題他のArrayListオブジェクトを含むArrayListオブジェクトのシリアライズ
- 23. 角度2の文字コードで配列をフィルターにかける
- 24. 当月までにフィルターをかけるためのVBAコード
- 25. ウィンドウのエラーでアドオン/拡張エラーをフィルターにかける
- 26. Screeps - 1(コンテナマイニング)の範囲で容器をフィルターにかける
- 27. ノックアウトでGoogleのマーカーをフィルターにかける
- 28. WordpressのPHP配列は、購読者をフィルターにかける
- 29. XSMTP API opentrackとclicktracking以外のイベントをフィルターにかける
- 30. grepで特定のデータベースをフィルターにかける方法
この宿題はありますか? –
hasmapの解決策の補足として、 'Comparator'も参照してください。 –