我将值保存到Hashmap<String,Records>
示例值1,objRecord1
,2,objRecord2
,1,objRecord3
等......我需要从字符串为1的hashmap中检索所有记录的值
arrayList myArraylist=Hashmap.get(1);
答案 0 :(得分:2)
在我看来,使用Multimap
最简单。
http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Multimap.html
如果你愿意在google commons上添加一个依赖关系:)
注意:这与apache commons的MultiMap
(注意案例差异)不同。
答案 1 :(得分:0)
arrayList myArraylist=Hashmap.get("1");
要满足您的Hashmap声明必须
Map<String,List<Record>> myMap = new HashMap<>();
添加list
添加到map
的示例:
if(myMap.containsKey("1")){
myMap.put("1", myMap.get("1").add(new Record()));//record obj
}else{
List<Record> list = new ArrayList<>();
list.add(record);
myMap.put("1", list));
}
返回
List<Record> list = myMap.get("1");
答案 2 :(得分:0)
使用列表或设置为值,然后保持更新该列表或设置。
Hashmap<String, ArrayList<Records>>
答案 3 :(得分:0)
是否需要订购每个密钥的多个记录?如果是这样的话,那就像:
Map<String, List<Record>>
是合适的。否则,Guava MultiMap将是合适的。
答案 4 :(得分:0)
最好将List用作hashmap中的值。
类似于:HashMap<String, List<Record>>
如果您想在地图中放置记录,可以执行以下操作:
void insertRecord(String key, Record record){
List<Record> records = map.get(key);
if(records == null){
records = new ArrayList<Record>();
map.put(key, records);
}
records.add(record);
}
答案 5 :(得分:0)
如果您希望每个键有多个记录,那么最好使用值集记录
Map<String, Set<Record>>