我会尽可能简单地解释我被困住的观点。
基本上我正在尝试实施一种解决方案来处理用户数据。
我有一个类似的 Map <String, Object>
,它将用户 ID 存储为键,将用户对象存储为值。用户对象有一些字段,如位置、姓名、年龄等。
通过使用地图,我希望有一些集合或其他地图来对用户数据进行分类。例如,我正在尝试获取另一张地图<String, Set<String>>
,该地图将存储一组居住在同一位置的用户,依此类推。
我尝试了一些技巧,并检查了一些链接,例如this和this以及其他一些链接,还尝试实现一些用于反转的基本代码
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 给了我洞察力和更好的想法来解决这个问题 :) 我不太确定如果尺寸太大会如何影响性能