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

在集合中按ID查找对象:用Map存储还是遍历集合?

按ID查找集合对象:Map vs List/Set实现对比

两种实现方式

使用Map

Map<String, MyObject> map = new HashMap<>();

public MyObject getById(String id) {
  return map.get(id);
}

使用List/Set

List<MyObject> list = new ArrayList<>();

public MyObject getObjectById(String id) {
    for (MyObject object : list) {
        if (object.getId().equals(id)) {
            return object;
        }
    }

    return null;
}

无特定业务场景下的推荐方案

在没有特殊业务限制的情况下,优先选择Map实现,原因如下:

  • 性能差异:HashMap的get操作平均时间复杂度为O(1),无论集合规模多大,查找速度都能保持稳定;而List/Set的遍历查找时间复杂度是O(n),集合元素越多,查找耗时越长。
  • 代码简洁性:Map的实现只需一行get调用,逻辑直观,无需手动编写遍历和判断逻辑,减少出错概率。

如果场景中需要频繁进行顺序遍历、元素排序,或者对象ID不具备唯一性,List/Set会更合适,但单纯按ID查找的场景下,Map是最优解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 00:53:10