重复 id 对应的多个对象

三、备选方案:Apache Commons MultiValuedMap(兼容 Spring Boot 3)

若项目已使用 Apache Commons Collections(Spring Boot 3 兼容 4.4 + 版本),可选择此方案,同样安全稳定。

步骤 1:引入依赖

xml

复制代码
<!-- Spring Boot 3兼容的Apache Commons版本 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>
步骤 2:核心代码

java

运行

复制代码
import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
import org.springframework.stereotype.Component;
import java.util.List;

@Component
public class CommonsMultiValueMapContainer<T> {
    private final MultiValuedMap<Long, T> multiValueMap = new ArrayListValuedHashMap<>();

    public synchronized void addObject(Long id, T obj) {
        multiValueMap.put(id, obj);
    }

    public List<T> getObjectsById(Long id) {
        return List.copyOf(multiValueMap.get(id));
    }
}
相关推荐
深盾科技_Virbox2 分钟前
云端与本地并行交付,软件许可管理如何实现统一运营?
java·大数据·开发语言·安全
papaofdoudou21 分钟前
从抽象群到可计算的矩阵:S₃ 的表示论与共轭视角
python·决策树·矩阵
xuxigifxfh29 分钟前
HJ15 求int型正整数在内存中存储时1的个数
java·开发语言·华为机考
Wokoo732 分钟前
自动化测试入门:核心场景、回归测试与 Web 自动化环境搭建
java·开发语言·测试工具
tachibana235 分钟前
Golang 中数组和切片的区别?
开发语言·后端·golang·数组·切片
JWASX1 小时前
【agent 开发】Agent 智能体
大数据·人工智能·python
智购科技无人售货机工厂店1 小时前
玻璃瓶饮料破损率突然上升,排查发现是取货口缓冲垫老化了~YH
java·开发语言·人工智能·python·eclipse
JWASX1 小时前
【agent 开发】agent 开发学习 - LangChain(2)
python·学习·langchain
枫叶丹41 小时前
语音 AI 怎样边听边答:实时对话系统的工作原理
开发语言·人工智能·chatgpt·开源·php·agent·codex
xie0510_1 小时前
Any类简要实现
开发语言·c++·算法