gpt4 book ai didi

java - 如果有多个节点具有相同的键,则 Hashmap 使用下一个变量指向下一个节点

转载 作者:行者123 更新时间:2023-12-01 16:20:34 26 4
gpt4 key购买 nike

我正在尝试在 Java 8 中使用 Hashmap。我将使用哈希函数来获取索引以放置具有给定键和值的节点。但是,如果存在具有相同键的节点,我必须使用链表类型的数据结构。这是我很困惑的地方。

例如,如果有

package First;

import java.util.HashMap;

public class MyClass extends Node {
public MyClass(int k, int v) {
super(k, v);
// TODO Auto-generated constructor stub
}

public static void main(String[] args) {
HashMap<String, Node> capitalCities = new HashMap<String, Node>();
capitalCities.put("England", new Node(1,3));
capitalCities.put("Germany", new Node(1,3));
capitalCities.put("Norway", new Node(1,3));
capitalCities.put("USA", new Node(1,3));
capitalCities.put("USA", new Node(1,3));
System.out.println(capitalCities);
}
}

如果我打印 h1,它只会有“APPLE”,13所以我想让Hashmap像这样:“苹果”,1 -> “苹果”,10 -> “苹果”,13

最佳答案

String 类哈希码和 equal 方法使“APPLE”独一无二。因此,您需要将对象作为键或使用 StringBuilder 而不是 String。就像下面这样

Map<StringBuilder, Integer> h1 = new HashMap<>();
h1.put(new StringBuilder("APPLE"), 1);
h1.put(new StringBuilder("APPLE"), 10);
h1.put(new StringBuilder("APPLE"), 13);
System.out.println(h1);

关于java - 如果有多个节点具有相同的键,则 Hashmap 使用下一个变量指向下一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62296601/

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