最近面試遇上一些題目,不能說是很難,可是沒有去看過,就是不知道。其實都是些小白的問題,大牛就不要亂噴了。我只是想認真學習編程,所以記錄。
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