【发布时间】:2014-03-06 21:14:19
【问题描述】:
我已经看过这里的帖子了:
With Hibernate, how can I query a table and return a hashmap with key value pair id>name?
这有一个很好的答案,但是如果我希望我的 HashMap 的键是一个带空格的字符串呢?还是其他角色?
【问题讨论】:
我已经看过这里的帖子了:
With Hibernate, how can I query a table and return a hashmap with key value pair id>name?
这有一个很好的答案,但是如果我希望我的 HashMap 的键是一个带空格的字符串呢?还是其他角色?
【问题讨论】:
这可以正常工作...想想HashMap 的工作原理...它由哈希表支持。如果你有一些String,我们称之为key,那么根据Java 规范,任何对象的hashCode() 方法都必须是确定性的,即在对象的生命周期内调用时返回相同的哈希码值运行它的 JVM 实例。
空格不会影响String 对象的哈希码。向字符串添加空格将使其成为不同的String,因此会产生不同的哈希码。自己看:
public static void main(String[] args) {
Map<String, String> someMap = new HashMap<String, String>();
someMap.put("some random key", "value");
System.out.println(someMap.get("some random key"));
System.out.println(" some random key ".hashCode()); // prints 1846300114
System.out.println("some random key".hashCode()); // prints -2030143442
}
【讨论】: