-1

私は次のようなデータ構造を持っています

List<HashMap<Person, Address>>

Person オブジェクトと Address オブジェクトを取得するリストがあります。指定されたリストの反復処理が完了したら、各 Person の Address をマージして、次のように取得する必要があります。

List<HashMap<Person1, Address1>>
List<HashMap<Person1, Address2>>
List<HashMap<Person2, Address3>>

List<HashMap<Person, List<Address>>>

これを行うための効率的な方法はありますか - 別のアプローチを取っている可能性がありますか? または、リストを反復することは唯一のオプションです。また、リストに多くのデータが含まれている場合、それを処理するための最良のオプションは何でしょうか?

4

2 に答える 2

2

Google Collections Multimap を使用できます

    List<HashMap<Person, Address>> list = ...
    HashMultimap<Person, Address> mm = HashMultimap.create();
    for (HashMap<Person, Address> m : list) {
        for(Entry<Person, Address> e : m.entrySet()) {
            mm.put(e.getKey(), e.getValue());
        }
    }

リストなしで個人とそのアドレスを保持できることに注意してください

于 2013-06-30T17:52:24.910 に答える