You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按key将元素存入Map,实现重复key存储多个UUID值的需求

实现方案

Java标准库中Map的键默认唯一,重复调用put方法传入相同键时,新值会直接覆盖旧值,你设想的用Map<Integer, List<UUID>>存储的思路是正确的,具体实现可以参考以下方案:

方案1:JDK8及以上原生实现(无需引入第三方依赖)

computeIfAbsent方法可以简化空列表初始化逻辑,代码如下:

// 定义键自动排序、值为UUID列表的TreeMap
final Map<Integer, List<UUID>> map = new TreeMap<>();

while (rowIterator.hasNext()) {
  // 实际使用时替换为你业务逻辑中动态获取的key和uuid值即可
  map.computeIfAbsent(1, k -> new ArrayList<>()).add(UUID.fromString("610e9040-840c-48c5-aa64-f193ed896133"));
  map.computeIfAbsent(2, k -> new ArrayList<>()).add(UUID.fromString("4ff0055d-49a9-4e93-b960-ff70ae1007ce"));
  map.computeIfAbsent(3, k -> new ArrayList<>()).add(UUID.fromString("751c79ce-445c-406a-9787-a754857a259c"));
  map.computeIfAbsent(3, k -> new ArrayList<>()).add(UUID.fromString("dc721d77-509d-4bd3-8004-43a8daab5840"));
  map.computeIfAbsent(3, k -> new ArrayList<>()).add(UUID.fromString("4ca16aff-5a30-4638-8b38-3a93eddb0fc5"));
  map.computeIfAbsent(3, k -> new ArrayList<>()).add(UUID.fromString("e4be360b-cccb-42a2-b416-eb4bb623b49f"));            
}

computeIfAbsent会自动判断键是否存在:如果键不存在,就新建ArrayList存入Map后返回该列表;如果键已经存在,直接返回已有的列表,直接调用add方法添加元素即可。

方案2:JDK7及更早版本原生实现

如果使用低版本JDK不支持computeIfAbsent,手动做判空处理即可:

final Map<Integer, List<UUID>> map = new TreeMap<>();

while (rowIterator.hasNext()) {
  // 替换为动态获取的key和uuid
  Integer key = 3;
  UUID uuid = UUID.fromString("dc721d77-509d-4bd3-8004-43a8daab5840");

  List<UUID> uuidList = map.get(key);
  if (uuidList == null) {
    uuidList = new ArrayList<>();
    map.put(key, uuidList);
  }
  uuidList.add(uuid);
}

方案3:基于Guava工具库实现

如果项目已经引入Guava依赖,可以直接使用TreeMultimap,无需手动维护列表:

final TreeMultimap<Integer, UUID> sortedMultimap = TreeMultimap.create();
// 直接put即可,相同键的元素会自动合并存入列表
sortedMultimap.put(3, UUID.fromString("751c79ce-445c-406a-9787-a754857a259c"));
sortedMultimap.put(3, UUID.fromString("dc721d77-509d-4bd3-8004-43a8daab5840"));

注意:你示例代码中存在变量名笔误,定义的变量是map,后续调用put方法时用的变量名是mapppp,实际编码时需要注意变量名统一。

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:39:01