java - HashMap 一个键关联到一个列表

标签 java list collections hashmap

我有一个对象列表,其中包含表的行数据。该表中有多个列,但我认为这不是问题。我需要应用的逻辑只需要两列。这两列称为化学名称批处理号。现在有趣的部分是,对于特定的批处理号,某种化学品可以出现多次。例如,

化学 |批处理|其他栏目

A----------------100---------ABC

A----------------100---------GHF

A----------------100---------GHL

现在我需要的是批处理号及其关联的行。我意识到最好的方法是 HashMap,其中 K 是批处理号,V 是列表。现在我不知道如何将键分配给包含行对象的列表。

我希望,但我无法在数据库级别执行此操作,因此这是不可能的。

最佳答案

您可以使用Map<String, List<String>>根据给定的键存储事物列表。

如果你想变得更花哨,你可以使用这个 anonymous实现:

Map<String, List<String>> map = new HashMap<String, List<String>>() {

    public List<String> get(Object key) {
        List<String> list = super.get(key);
        if (list == null) { 
            list = new ArrayList<String>();
            put(key, list);
        }
        return list;
    }

}

当列表不存在时,它会自动创建一个列表,因此您可以像这样安全地使用它:

map.get(key).add("new item"); // won't get a NuilPointerException


如果找到客户的这个码型get()方法非常方便!

关于java - HashMap 一个键关联到一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12486896/

相关文章:

Java 进程大小 32 位与 64 位

java - 在 Java 项目 View 中折叠来自 NetBeans 或 Eclipse 的子包

java - Go 和 Java 使用用户空间线程这一事实是否意味着您不能真正利用多核?

javascript - 添加按钮,该按钮将创建新的下拉列表并从新的 dpl 中删除所选值

Java Collection<Generic Type> 没有集合的排序

java - Android - Firestore 使用 startAfter() 和 limit() 返回一个空查询

python - 从 Python 中的字典中的列表中删除一个元素

list - 如何从 tcl 中的列表中删除列表

java - 当我们删除元素时,ArrayList 的容量会减少吗?

c++ - 有没有办法用一行来初始化容器?