J2SE總結(一)-------容器

來源:互聯網
上載者:User

標籤:

最近大家都在討論容器以及如何在項目中去實際的應用它,由於之前對容器沒有什麼概念,所以把J2SE裡面講的容器的一些基礎知識看了一下,總結一下最基本的東西。

圍繞整章最核心的就屬下面這張圖了吧。

一、概念理解

為什麼要有容器這個概念:剛接觸,在我理解:在編程時,經常會遇到具有重複功能或屬性的對象時,經常會大量的重複工作導致代碼冗餘,同時,隨著使用者的需求不斷變更,改動的次數就不不斷增加,如何避免大量的改動,同時減少模組之間的耦合度(如aop池),我們定義容器,凡是裝在容器內部的對象全部具有容器的一切屬性和方法,這便是容器的作用。

容器:可以管理對象的生命週期、對象與對象之間的依賴關係,您可以使用一個設定檔(通常是XML),在上面定義好對象的名稱、如何產生(Prototype 方式或Singleton 方式)、哪個對象產生之後必須設定成為某個對象的屬性等,在啟動容器之後,所有的對象都可以直接取用,不用編寫任何一行程式碼來產生對象,或是建立對象與對象之間的依賴關係。

通過可知,在JAVA容器中,有兩個分支,collection和map,其中collection是一個獨立元素的序列,list和set分別是實現collection介面的兩種不同形式的容器,list運行對象重複且有序,而set容器的對象是無序且不能重複的。

map是以索引值對形式來表現的對象之間的映射關聯類型的容器。

在編碼中,如果定義了一個容器,容器中具有一些屬性和方法,那麼向這個容器中添加一個對象,這個對象同時也具有了這個容器的屬性和方法。

例如:collection介面中所定義的方法,如果在collection容器中加入了一個普通的string或者其他對象,那麼這個l對象也會自動擁有collection的所有方法。

二、list和set

在list介面中實現它的有linkedlist和arraylist

1/arraylist來源於數組,只因數組必須制定固定的長度,且長度不可變,因此用arraylist來補充它的缺陷,arraylist擁有list的特點,可以根據對象的大小來成倍的擴充記憶體空間。linkedlist內部是按照鏈表來實現的。

2、set

實現set介面的只有一種就是hashset,開始以為是雜湊表,後來才知道弄錯了,它類似於數學裡面的集合,無序且不重複。即相同的元素不會被加入集合中。

 

[java] view plaincopy  
  1. public static void main(string args[]){  
  2.           Set s=new HashSet();  
  3.           s.add("hello");  
  4.            s.add("hello");  
  5.            s.add("world");  
  6.           System.out.print(s);  
  7. }  
  8. //輸出結果[hello,world],重複的記錄只會加入一次  

 

 

小結:容器正如它的名字一樣,用來承載大量的資料。同時可以減少很多重複的代碼,在一定支援人員下,可以減少模組和模組之間的耦合度。運用容器可以給開發人員帶來很多意想不到的效果。還是要多多深入的探討和實踐才行。

J2SE總結(一)-------容器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.