相关疑难解决方法(0)

使用字节数组作为Map键

你看到使用字节数组作为Map键有什么问题吗?我也可以做new String(byte[])和哈希,String但它更直接使用byte[].

java bytearray hashmap

72
推荐指数
5
解决办法
6万
查看次数

String 与 Stringbuffer 作为 HashMap 键

我试图理解为什么 String 和 Stringbuilder/StringBuffer 在用作 Hashmap 键时会受到不同的对待。让我用下面的插图来澄清我的困惑:

示例#1,使用字符串:

String s1 = new String("abc");
String s2 = new String("abc");
HashMap hm = new HashMap();
hm.put(s1, 1);
hm.put(s2, 2);
System.out.println(hm.size());
Run Code Online (Sandbox Code Playgroud)

上面的代码片段打印“1”。

示例#2,使用 StringBuilder(或 StringBuffer):

StringBuilder sb1 = new StringBuilder("abc");
StringBuilder sb2 = new StringBuilder("abc");
HashMap hm = new HashMap();
hm.put(sb1, 1);
hm.put(sb2, 2);
System.out.println(hm.size());
Run Code Online (Sandbox Code Playgroud)

上面的代码片段打印“2”。

谁能解释一下为什么行为不同。

java string stringbuilder hashmap stringbuffer

5
推荐指数
1
解决办法
6950
查看次数

标签 统计

hashmap ×2

java ×2

bytearray ×1

string ×1

stringbuffer ×1

stringbuilder ×1