最近面试遇上一些题目,不能说是很难,可是没有去看过,就是不知道。其实都是些小白的问题,大牛就不要乱喷了。我只是想认真学习编程,所以记录。
1、HashMap 的KEY 区别大小写么?
当时不知道,可是总的回答吧,就蒙了一个不区分,运气就这么差,我都后悔回答了。后来查了下,是区分大小写的。
例如:你用 get(Object key)方法去取数据,它会调用getEntry(key)这个方法,
然后getEntry(key) 会通过int hash = (key == null) ? 0 : hash(key);取KEY的Hashcode值。
然后再根据indexFor(hash, table.length)方法取在数组中的地址。
说了一大堆,其实就是为了说明,我haspmap取值是根据key的hashcode值来取得。而大小写字母hashcode值是不一样的。
这里我写了一个简单测试程序,如下:
public class TestHashCode {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("a".hashCode());
System.out.println("A".hashCode());
}
}
结果:
97
65