自學Java之—數據結構

廢話不多說哦,寫這篇軟文的時候我嘗試用逆向思維去思考我的學習之路。故事回到原點,看到這篇文章的童鞋請自行帶入以下場景:你被帶入一家加工工廠,你被分配的任務就是生產可以存放特定物品的箱子,這裏你擁有了一臺機器,可以製造任何你想要製造的箱子,只要你想得到的都可以。這些箱子裏需要放什麼呢,有三種物品需要存放:一是雜亂無章的玻璃珠,各種顏色,現在需要每種顏色只保留一個放到箱子裏,可以隨便放,讓小孩子從箱子裏取出來彈着玩就是了;二是嶄新撲克牌,要求是從箱子裏取的時候每張牌的順序是固定的,是按照事先的要求存放。三是放活人哦(好闊怕),十幾萬個有姓名的人,要求能夠根據名字把對應的人快速的找出來(男女是不是要混住啥的這種問題就不要考慮了…)。這三種場景設定完畢。下面就是靠你設計箱子了。先自己思考一下。

下面一一說一下Java帝國的設計模式:

第一種,一種顏色有多個,放入箱子只保留一種顏色的一個,OK。javaer這樣設計的:箱子裏放入一個顏色分辨器,每一個珠子放入的時候被它掃描,箱子裏沒有則扔進去並記錄一下,下一個珠子經過它,若歷史記錄裏有了則扔掉,沒有則扔進箱子並記錄。循環往復。

第二種:設計一個抽屜,抽屜裏有很多小盒子,當這些撲克牌放入的時候先從第一個格子放入,依次第二個格子放入第二張…,取的時候有兩種拿的辦法:一個是先取先放入的,把抽屜拉開取離你近的格子裏的撲克牌;另一種是知道要取哪一個格子(格子上有記號筆標記的序號),直接拿出撲克牌。

第三種就有點麻煩了,javaer 這樣設計的:根據這些人的名字的首字母建了26個小箱子,然後把標記了字母的箱子掛在26個房間外,當我找李二狗的時候,就直接奔L房間,這樣我就會很快的找到李二狗告訴他他媽喊他回家喫飯了。

如上的場景都很生活化,其實就是一個道理,Java的數據結構有很多種,主要的也就那麼幾種,第一種是set,第二種是list,第三種是map,那什麼場景下用什麼樣的數據結構呢,就要看你放數據的場景了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章