java - JAVA中动态为一个键添加多个值

标签 java android collections

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

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

例如数据:

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

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

最佳答案

我认为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);
}

关于java - JAVA中动态为一个键添加多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13728098/

相关文章:

java - 如何通过 Java 程序设置要使用的 dns 服务器?

java - 字符串匹配中的计算前缀函数

android - 如何从android中的每个 ListView 项调用不同的 Intent ?

android - Android 应用程序中 Google map 上的 KML

Scala - 按字段子集区分两个案例类列表

java - Recyclerview 里面的 Recyclerview ,获取父 Adapter 里面子行的点击位置

Android Polyline 没有正确绘制路线

java - 如何从列表<String>中删除重复元素?

java - 并行处理 Set

java - 日期的子串