gpt4 book ai didi

java - 在 Java 中使用什么数据类型来匹配间隔?

转载 作者:搜寻专家 更新时间:2023-11-01 02:07:11 27 4
gpt4 key购买 nike

我有一个实现非重叠范围的对象列表,例如:

1 to 10
11 to 20
21 to 50
51 to 100

它们提供 min()max() 来检索这些值。

我需要一个数据存储来轻松检索正确的对象,给定一个必须在其区间内的值。

我能想到的最简单的方法是创建一个有序数组列表并简单地遍历它直到找到正确的区间。所以在这种情况下,查找的时间复杂度为 O(N)。

标准 Java 库中是否有更高效的数据结构来完成这项任务?

最佳答案

您可以尝试使用 NavigableMap,此答案中解释了该方法:Using java map for range searches ,“无孔”方法。

使用 TreeMap 的示例实现:

// Create TreeMap
NavigableMap<Integer, MyInterval> map = new TreeMap<>();

// Putting values
map.put(interval1.min(), myInterval);
map.put(interval2.min(), myInterval);

// Retrieving values
int value = 15;
MyInterval interval = map.floorEntry(value).getValue();

// Check if value is smaller than max()
if (value <= interval.max())
return interval;
return null;

关于java - 在 Java 中使用什么数据类型来匹配间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29563035/

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