gpt4 book ai didi

具有 3 列键的 Java Map

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:30:33 25 4
gpt4 key购买 nike

我需要一个映射,其中我的键应该基于 3 列,例如 C1、C2、C3C1 具有最高优先级。 C2C1少一,C3C2少一。

我如何在 map 中创建键,以便如果有人询问有关 C1 的信息,我应该能够提供所有具有 C1 的值。如果要求 C1 & C2

,我也应该能够返回所有值

最佳答案

您可以使用与数据库中的多列索引相同的策略,如果您的键列可以排序(即,在 Java 中,它们需要可比较)并且可以轻松定义最大和最小值除了第一个。

整数列的示例:

public class Key implements Comparable<Key> {
int c1, c2, c3;

private static final int c2_min = Integer.MIN_VALUE;
private static final int c2_max = Integer.MAX_VALUE;
private static final int c3_min = Integer.MIN_VALUE;
private static final int c3_max = Integer.MAX_VALUE;

@Override
public int compareTo(Key o) {
if (c1!=o.c1) return Integer.compare(c1, o.c1);
if (c2!=o.c2) return Integer.compare(c2, o.c2);
return Integer.compare(c3, o.c3);
}

// constructor, equals, ...

}

然后您可以像这样在 c1 中获取某个值 k1 的所有条目:

map.subMap(new Key(k1, Key.c2_min, 0), new Key(k1, Key.c2_max, 0));

同样,使用前两列:

map.subMap(new Key(k1, k2, Key.c3_min), new Key(k1, k2, Key.c3_max));

关于具有 3 列键的 Java Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15540522/

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