0

私が行き詰まったポイントをできるだけ簡単に説明しようと思います。

基本的に、ユーザーデータを処理するソリューションを実装しようとしています。

<String, Object>ユーザーIDをキーとして、ユーザーオブジェクトを値として保存する、のようなマップがあります。ユーザーオブジェクトには、場所、名前、年齢などのフィールドがあります。

マップを使用して、ユーザー データを分類するためのセットまたは他のマップが必要です。たとえば<String, Set<String>>、同じ場所に住んでいるユーザーのセットを保存するような別のマップを取得しようとしています。

私はいくつかのトリックを試し、これこれなどのいくつかのリンクをチェックしました。また、元に戻すための基本的なコードを実装しようとしました

Set<String> userid = new HashSet<String>();
Map<String, Set<String>> returnvalue = new HashMap<String, Set<String>>();
HashMap<String, String> userReason = convertForReason();
for (Entry<String, String> entry : userReason.entrySet()) {
    userid.add(entry.getKey());
}

しかし、新しいマップを作成する方法に行き詰まっています<String. Set<String>>。これを達成する方法はありますか? またはこの種の問題に対する他の解決策はありますか?

アップデート:

さて、ここに私が自分の質問のために見つけたものがあります:

Map> returnValue = new HashMap>(); HashSet reasonSet = new HashSet();

    for(String userId : userData.keySet()){
        UserObject obj = userData.get(userId);
        String location = obj.getLocation();
        String username = obj.getUserid(); 
        if(returnValue.get(location)==null){
            reasonSet = new HashSet<String>();
            reasonSet.add(username);
            returnValue.put(reason, reasonSet);
        }else{
            HashSet<String> tmp = returnValue.get(location); 
            tmp.add(username);
            returnValue.put(location, tmp);
        }

これを解決するための洞察とより良いアイデアを提供してくれたByterに感謝します:)サイズが大きくなりすぎた場合にパフォーマンスがどのように影響を受けるかはよくわかりません

4

1 に答える 1

0

ユーザーデータとして場所があり、特定の場所のさまざまなユーザーが必要だとします...

 Map<String, Set<String>> returnvalue = new HashMap<String, Set<String>>();
    Map<String, UserObject> userData = getUserData();

    for (String userId : userData.keySet()) {
        UserObject obj = userData.get(userId);
        String location = obj.getLocation();
        Set<String> usersInGivenLocation = returnvalue.get(location);
        if(usersInGivenLocation == null) {
           usersInGivenLocation = new HashSet<String>();
           returnvalue.put(userId,usersInGivenLocation);
        }
        usersInGivenLocation.add(userId);
    }

私はこれがあなたが望むものであることを願っています...

于 2012-07-31T06:14:29.907 に答える