gpt4 book ai didi

java - 具有 2 个值字段的自定义 hashmap VS 在 java 中实现一个具有数组作为值的 hashmap

转载 作者:行者123 更新时间:2023-11-30 08:48:15 24 4
gpt4 key购买 nike

它们是否为编写我自己的 HashMap 数据结构而不是使用像 Java 中的 HashMap 这样的预写类增加了好处。

背景。我正在编写一个 spring 应用程序,该应用程序需要可以将单个键映射到两个值的数据结构。

目前我能想到的好处是:- 可以包含更多方法,例如 swap(将值 1 与 2 交换)- 对散列函数的更多控制- 一般控制更多

想知道:- 如果它们在性能或复杂性方面有任何缺点- 或者编写我自己的数据结构是否有意义

感谢您花时间阅读。

编辑:如果它有帮助。我只需要快速的访问速度(像 get 和 contains 这样的方法)对于“放”的方法,花费的时间可能会长一点对我应该做什么有什么建议吗?

最佳答案

保持简单:使用 HashMap 其值类型是一个简单的类来保存两个值,例如(为简单起见,我假设键和两个值都是字符串):

class Pair {
private String a;
private String b;
public Pair(String a, String b) {
this.a = a;
this.b = b;
}
public String getA() {
return a;
}
public String getB() {
return b;
}
public void swap() {
// Note: Not threadsafe
String tmp = a;
a = b;
b = tmp;
}
public boolean equals(Object o) {
return o instanceof Pair
&& Objects.equals(a, ((Pair)o).a
&& Objects.equals(b, ((Pair)o).b;
}
public int hashCode() {
return Objects.hash(a, b);
}
}

Map<String, Pair> map = new HashMap<>();

关于java - 具有 2 个值字段的自定义 hashmap VS 在 java 中实现一个具有数组作为值的 hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32062308/

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