如何将元素添加到multiMap?

时间:2013-09-20 01:25:41

标签: java map

我正在使用多图来按长度对单词进行排序。整数是单词的长度。 我想知道如何在列表中添加单词。

Map<Integer, List<String>> mmap = new HashMap<Integer, List<String>>();

说我有两个字,“bob”和“can” 他们都是3个字母。有人可以给我一个指针,我会怎么做?

3 个答案:

答案 0 :(得分:2)

If(mmap.containsKey(word.length())){
  mmap.get(word.length()).add(word);
}else{
  List<String> list = new LinkedList<String>;
  list.add(word);
  mmap.put(word.length(), list)
}

答案 1 :(得分:0)

使用集合列表。

private final List<Set<String>> list = new ArrayList<>();


public void add(String word) {
    while(list.size() <= word.length()) list.add(new HashSet<>());
    list.get(word.length()).add(word);
 }

答案 2 :(得分:0)

使用Map.computeIfAbsent,您可以创建或检索键的内部集合,然后在整洁的一行中将其添加到其中:

mmap.computeIfAbsent(word.length(), k -> new ArrayList<>()).add(word);