Java 为LinkedHashMultiMap按顺序遍历特定键的所有值

Java 为LinkedHashMultiMap按顺序遍历特定键的所有值,java,guava,Java,Guava,我想按插入顺序遍历LinkedHashMultiMap番石榴的特定键的值 这可能吗?如果是的话,怎么做 为什么是LinkedHashMultiMap?我现有的数据结构是一个HashMultiMap,我想如果我把它改成LinkedHashMultiMap,它将与我现有的代码兼容,我可以以某种方式迭代这些值 但是看看这些文档,我不太明白——也就是说,我对LinkedHashMultiMap类是新手。按插入顺序迭代LinkedHashMultiMap 多重映射的实现,它不允许重复的键值项,并返回迭代器

我想按插入顺序遍历LinkedHashMultiMap番石榴的特定键的值

这可能吗?如果是的话,怎么做

为什么是LinkedHashMultiMap?我现有的数据结构是一个HashMultiMap,我想如果我把它改成LinkedHashMultiMap,它将与我现有的代码兼容,我可以以某种方式迭代这些值


但是看看这些文档,我不太明白——也就是说,我对LinkedHashMultiMap类是新手。

按插入顺序迭代LinkedHashMultiMap

多重映射的实现,它不允许重复的键值项,并返回迭代器遵循数据添加到多重映射的顺序的集合

并将开箱即用,请参见:

代码示例:

LinkedHashMultimap<String, String> m = LinkedHashMultimap.create();

m.put("a", "foo");
m.put("b", "bar");
m.put("a", "baz");

m.get("a").forEach(System.out::println); // outputs "foo" and "baz"
只需在for-each循环中使用并迭代结果集

for (String value : multimap.get(key)) {

}
集合的迭代器将按照添加到多重映射的顺序进行迭代,如所指定的


类似地,get、removeAll和replaceValues返回按添加顺序遍历值的集合


类似地,get、removeAll和replaceValues返回按添加顺序遍历值的集合。困惑在哪里?我想我只是困惑于返回一个集合而不是LinkedHashSet。我想这样做是为了符合接口。@ycomp LinkedHashMultimapget始终返回LinkedHashSet并不是一成不变的,所以不要尝试进行任何转换。契约所保证的是,返回集的行为将类似于LHS,这意味着插入顺序是有保证的。
for (String value : multimap.get(key)) {

}