標籤:style ash 字串 距離 初步 結果 方式 png 上海
一.
把前面講到的三個集合使用一下。
交代一下需求,學生是鍵,歸屬地是值。到底歸屬地是不是String,有待商榷。如果歸屬地比較簡單,用天津,上海....這些就是字串。如果歸屬地比較複雜,北京的海澱的...,建議把歸屬地封裝成對象。為什嗎?歸屬地封裝成對象以後,它裡麵包含著省欄位,市欄位,區欄位.....這些欄位你想單獨地去擷取,歸屬地對象自己最清楚,所以這個時候要進行封裝。記住,一旦事物變複雜了,封裝對象。將複雜事物簡單化。如果就是簡答的,那就直接字串上,不用封裝對象。
在第一個例子中,示範的是hashmap集合。前面已經講述了map集合,這裡討論的是map子類的集合?無論什麼類型的集合,都是一個容器,對不同類型的儲存元素進行各種操作。不同集合間對元素進行的操作種類大多都差不多,增,刪,查...
在本例中進行取元素,可以有兩種方法,要麼keyset,要麼。。。。先示範keyset。
set集合裡面裝的是鍵類型,
其實這裡書寫的方式挺奇怪的,距離來看,lisi,38和北京三個屬性間在添加入集合時,書寫方式比較奇怪,沒看懂。
雜湊是無序的,輸出結果無序。
現在修改程式,對於zhaoliu這個對象,修改一下歸屬地,多添加一次。
輸出結果如上,怎麼解決。如果你認為鍵相同,是不是會出現值覆蓋情況,它能全列是因為鍵不相同。如果想保證鍵相同,必須要提供鍵判斷相同的依據。
雜湊表結構要保證兩個方法,一說hashset都明白,一說hashmap就糊塗了。既然這個鍵是存到了hashmap中(雜湊表),它要具備hashcode和equals方法,具備它自己內容,所以在person類裡面,要做一個複寫動作。(集合這一塊,代碼貌似都是分開寫的) 有人說存的是student,但是student繼承了person,student裡面沒有任何屬性,直接在person裡面寫就好了。現在在person類中,添加了hashcode和equals方法,再看輸出結果。
上海的歸屬地對象,被鐵嶺覆蓋了。
現在提個小事情,如果不寫中注釋的兩句,而是中最後一句。它們是一個意思。
JAVA-初步認識-常用對象API(集合架構-Map集合-hashmap儲存自訂對象)