比如set(集合)具有無序性,而且元素不能重復。
map主要是散列思想,即key-value值對。
list是鏈表結構,插入和刪除元素,壹個在頭,壹個在尾。
另外還有Stack是同壹端插入和刪除。
妳說他們功能壹樣其實是錯的,雖然對於某些問題用他們都可以解決,比如迷宮問題,可以用Stack,可以用鏈表,甚至可以直接用個簡單的壹維數組(因為多維數組可以由壹維數組表示),但是解決時的復雜度是不同的。這其中除了算法中的時間、空間代價的不同(比如使用散列,搜索時間大大減少,但是占用空間增大),當然還包括使用不同數據結構解決不同問題時的“自然”程度(即讓別人容易明白妳的算法的程度)。
說了這麽多,其實封裝這些東西就是為了方便編程,方便實現功能。
就像妳可以說:“壹條語句和壹個函數(語句組成)本質上都是相同的,那為什麽要那麽麻煩設計函數?”那妳就可以去查查函數編程思想和之後發展起來的面向對象編程思想的優勢。
最後再提下Java裏面壹些高級點的東西,即所謂線程安全,某些數據結構封裝類不是線程安全的,而另外壹些是,這些妳可以去查看API或者底層代碼實現,要花費很大耐心的