SCJP題庫第211題


Given:
11. public class Key{
12.   private long id1,
13.   private long id2;
14.
15.   //class Key methods
16. }
A programmer is developing a class Key, that will be used as a key in a standard java.util.HashMap.
Which two methods should be overridden to assure that Key works correctly as a key? (Choose two.)
A. public int hashCode()
B. public void hashCode()
C. public int compareTo(Object o)
D. public boolean equals(Object o)
E. public boolean compareTo(Key k)
Ans: AD

解說: 此題問說,一個程式設計師正在開發一個類別Key,這個類別將當成一個鍵值使用於 java.util.HashMap中,那二個方法應該被覆寫以保證Key類別以鍵值的形式正確地運作?


一個物件被放在HashMap中,是靠著一個鍵值來進行物件的索引。


hashCode 用來計算一個物件的雜湊值
equals 用來比較二個物件的內含是否一樣


一般來說,會先用hashCode計算雜湊值以索引出物件在Map中的位置,由於不同的物件有可能會有相同的雜湊值,若發生此種現象(碰撞),則必須再用更精確的比較方法equals來找出在Map中的物件。


雜湊在各位的資料結構課程中會有一些概念的解說,不妨可以回頭看一下資料結構中對雜湊的介紹。

Comments

Popular posts from this blog

Android-使用webview在V3版的Google地圖GPS定位