gpt4 book ai didi

java - Multimaps.index() 但生成 NavigableMap?

转载 作者:行者123 更新时间:2023-11-30 05:57:31 31 4
gpt4 key购买 nike

我需要有效的ImmutableNavigableListMultimap<Integer, HasOffset>哪里HasOffset看起来像:

interface HasOffset {
public int getOffset();
}

但是没有ImmutableNavigableListMultimap :我想要的是一个不可变的 NavigableMap<Integer, List<HasOffset>> 我从 List<HasOffset> 创建我在其中索引每个 HasOffset通过其偏移量。例如,如果我有这些对象:

115 Elm St. John Smith
115 Elm St. Jane Smith
108 Elm St. Thomas Little
101 Elm St. Bill Jones
115 Elm St. Buster Smith
112 Elm St. Mary Kay
101 Elm St. Judy Jones

那么我想要的是一个看起来像这样的 map

101 -> [Bill Jones, Judy Jones]
108 -> [Thomas Little]
112 -> [Mary Kay]
115 -> [John Smith, Jane Smith, Buster Smith]

我可以在其中使用键并找到该键下方或上方最接近的值。

Guava 可以帮忙还是我必须自己做?我喜欢 Multimaps.index() 但我认为这一次对我没有帮助。

最佳答案

Guava 仍然是一个 Java 5 库,因此您不会找到任何实现 Navigable* 的内容。就在其中。

如果你真的想要,你可以通过首先将输入排序为 Multimaps.index() 来伪造这个。然后利用ImmutableListMultimapkeySet().asList()查看并对键进行二分搜索并利用它返回的索引。但这显然不一样。

另一个选择可能是使用 Multimaps.index()消除创建 map 的乏味,然后复制其 asMap()查看 TreeMap<Integer, Collection<HasOffset>> 。显然,与自己动手相比,还有一些额外的工作要做。

关于java - Multimaps.index() 但生成 NavigableMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5489677/

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