具有值列表的映射的现有Java实现?

时间:2014-05-20 19:25:49

标签: java data-structures map

我可能使用的常见数据结构类型是

   Map<String,List<MyObject>> myMap...

我要做的常见操作是在给定匹配键的情况下将对象添加到列表中。例如,

  myMap.addValueToList("Key", myObject)

实现这个并不是很棘手,但它有点难看(对于这个例子,假设myObject包含密钥):

for (MyObject myObject : myObjects) {
   List<MyObject> newList = newArrayList();
   if (myMap.contains(myObject.key)) {
     newList = myMap.get(myObject.key);
   }
   newList.add(myObject);
   myMap.put(myObject.key, newList);
}

我比这更经常地做这种操作。上一次,我为这个功能编写了我自己的类,但是我想知道在一个常用的库中是否没有某种实现,例如apache。

2 个答案:

答案 0 :(得分:3)

这称为MultiMap,在Apache公共中有一个现有的实现: MultiMap

答案 1 :(得分:2)