gpt4 book ai didi

java - 通过值的索引获取Guava Multimap的key

转载 作者:行者123 更新时间:2023-12-02 12:28:02 24 4
gpt4 key购买 nike

假设这是我在 Multimap 集合中的示例数据:

x -> [1,2]
y -> [1,3]
z -> [4]

然后我制作了一个值列表,可能如下所示:(第一列是值的索引,第二列是值)

0 -> 1
1 -> 2
2 -> 1
3 -> 3
4 -> 4

我的问题是如何通过知道该值的索引来获取该值的配对键。例如,索引“2”的键,必须返回键“y”。

最佳答案

如果您想执行此操作一次,您可以对 Multimap#entries() 进行简单循环并自己维护计数器,但是:

  1. 各种迭代的顺序 Mutlimap实现可能会有所不同
  2. 如果主要用例是通过索引访问键/值,则不应使用 Multimap在这里,但保留一个列表(可能是 List<Entry<String, Integer>> )。

如果您确实必须拥有多重映射并且它是不可变的,您可以使用.entries().asList() View 来实现我上面描述的:

//given
ImmutableListMultimap<String, Integer> multimap =
ImmutableListMultimap.<String, Integer>builder()
.putAll("x", 1, 2)
.putAll("y", 1, 3)
.putAll("z", 4)
.build();
ImmutableList<Map.Entry<String, Integer>> entriesWithPosition =
multimap.entries().asList();
//when
Map.Entry<String, Integer> foundEntry = entriesWithPosition.get(2);
//then
assertThat(foundEntry.getKey()).isEqualTo("y");

关于java - 通过值的索引获取Guava Multimap的key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45411805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com