在Multimap中检索特定值

Rag*_*eth 2 java guava

我正在使用每个键有两个值的Multimap.下面是我用来分别获取每个值的代码:

第一个代码获取第一个对象值:

for(Object object : map.get(object))
{
    return object
}
Run Code Online (Sandbox Code Playgroud)

然后,我正在使用另一种方法来检索其他值.此方法将第一个对象作为参数:

for(Object object : team.get(object))
{
    if(object != initialObject)
    {
        return object;
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎是一种"hackish"做事方式,所以有没有办法让我更容易获得价值?

Ala*_*kes 7

如果你正在使用Guava,Iterables#get可能就是你想要的 - 它从任何可迭代的例子中返回第N个项目:

Multimap<String, String> myMultimap = ArrayListMultimap.create();

// and to return value from position:
return Iterables.get(myMultimap.get(key), position);
Run Code Online (Sandbox Code Playgroud)

如果您正在使用a,ListMultimap那么它的行为非常类似于List的映射,因此您可以直接调用get(n).