2

我通过查询以字符串形式收到多条记录。当我在循环中解析它们时,我想动态地将具有相同“长”键的记录存储在集合中。就像,插入键和值,如果键存在,它会添加到值中,如果不存在,则创建一个新键。这样做最有效的方法是什么?我可以使用多个数组来做到这一点,但我更喜欢更干净的方式。

我不能使用 aHashMap因为我必须首先将记录存储在ArrayorArrayList然后插入它,这违背了目的,因为无论如何我必须首先按键对列表进行分组。没有。的记录一次不会超过 50 个。

例如数据:

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

我想要一个集合,在循环内我可以添加:1“A”等等..

4

1 回答 1

4

我想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);
}
于 2012-12-05T16:46:05.457 回答