gpt4 book ai didi

java - 基于键值的值范围

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:22:01 25 4
gpt4 key购买 nike

我正在尝试实现一种通过大量二维点搜索与特定范围匹配的点的方法。我正在考虑为 <X, Point> 创建 HashMap和 <Y, Point>但我想知道 HashMap 是否适合这样做,因为我将根据从 x_min 到 x_max 和 y_min 到 y_max 的值在一个范围内取点。

所以我基本上会从<X,Point>中拿走所有的点从 x_min 搜索到 x_max 并将它们与从 <Y,Point> 中获取的点进行比较从 y_min 到 y_max...

HashMap<Integer,Point> x_coordinates = new HashMap<Integer,Point>();
for(int i=x_min;i<=x_max;i++){
if(x_coordinates.containsKey(i))
x_coordinates.get(i);
}

HashMap<Integer,Point> y_coordinates = new HashMap<Integer,Point>();
for(int i=y_min;i<=y_max;i++){
if(y_coordinates.containsKey(i))
y_coordinates.get(i);
}

有没有更快的方法从 HashMap 或其他类型的数据结构中获取一系列值?

最佳答案

TreeMap更好,因为它支持许多功能,如地板、更高、更低、天花板等。 多亏了它,您可以创建一个 map TreeMap<Integer,Point> coordinates = new TreeMap<Integer,Point>();然后查询它以获取您感兴趣的坐标。请注意,TreeMap 是根据 natural ordering 排序的它的键,或通过 Comparator在 map 创建时提供。

如果您正在寻找一些更复杂的搜索查询,请查看 quad-tree

关于java - 基于键值的值范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27714555/

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