2012-12-05 32 views
1

我有多个通过查询接收为字符串的记录。我想在循环中解析它们时动态地将具有相同“长”键的记录动态存储在集合中。就像插入键和值一样,如果键存在,它会添加值,否则将创建一个新键。什么是最有效的方法呢?我可以使用多个数组来完成,但我更喜欢更清晰的方式。向JAVA中的键动态添加多个值

我不能使用HashMap因为我得先记录存储在一个ArrayArrayList,然后将其插入它违背了目的,我必须按键首先列出反正。没有。的记录一次不会超过50个。

E.g数据:

for(i = 0; i < numRecords; i++) { 
    Data: 1 "A", 2 "B", 1 "C", 3 "D", 1 "E" 
} 

我想有一个集合,其中环内我可以再补充:1 “A” 等..

回答

2

我认为Map<Long,List<String>>可以帮助你。

Map<Long,List<String>> map = new HashMap<>(); 
... 
if(map.get(key)!=null){ 
    List<String> list = map.get(key); 
    list.add(value); 
}else{ 
    List<String> list = new ArrayList<>(); 
    list.add(value); 
    map.put(key,list); 
} 
+0

为什么我得到这个错误:“<>”经营者不得低于1.7 源代码级两个新的HashMap和ArrayList声明。 我只想使用Java 1.6 – Rachit

+0

然后使用'new HashMap >()'为空'<>'不支持java 1.6 –

+0

是的,这很适合我的目的。非常感谢你! – Rachit