java物件導向中的集合

來源:互聯網
上載者:User

標籤:返回鍵   返回   print   asn   安全執行緒   區別   tree   linked   keyset   

1.學習集合的原因?

   A.數組是面向過程的,集合是物件導向的。

   B。集合是類,具備類的封裝,繼承,多態。。。超強功能。

   C。數組是固定長度,集合是可變長度

   D。數組沒辦法獲得真實的元素個數;集合可以。

   E。數組只有一種固定的存值方法(順序結構存值);集合具有多種方式,適合於多種場合。


2.集合的家庭成員:

   (第一塊:)
               Collection  【無序,不唯一】      Map【key  , value】
          【無序,唯一】【無序,不唯一】

   list 【有序,不唯一】                        set【無序,唯一】  


ArrayList     LinkedList    Vector              HashSet     TreeSet  HashMap
   |     |         |           |     |
【順序儲存】 【鏈表格儲存體】         【hash表】  【二叉樹】      【雜湊表+索引值對】


3.介紹ArrayList:

  存值方式: 順序結構儲存。

  使用場合: 遍曆和隨機訪問。

  常用方法:

      增加:add();addAll(Collection);
    
      刪除:remove(Object或者下標);removeAll(Collection);

      尋找:contains(Object);containsAll(Collection);size();get(下標);

      迭代:Iterater: 

           使用:
  Iterator iter =list.iterator();
  while(iter.hasNext()){
   System.out.println(iter.next());
  }

4.介紹Vector 和 ArrayList的區別:(瞭解)

  1.相同點:原理相同,底層代碼相同,方法相同

  2.不同:Vector  安全執行緒的;每次增長1倍;老版本jdk提供操作集合的介面

         ArrayList 效率高,線程不安全;每次增長0.5倍;ArrayList是新版本提供集合的介面。

5.介紹LinkedList:


存值方式:鏈表結構

使用場合:刪除和修改

   方法:

      增加:add();addAll();addFirst();addLast();
    
      刪除:remove();clear();removeAll();
            removeFirst();removeLast()

      尋找:contains("北京");containsAll(list1);size();get();
            getFirst();getLast();

      迭代:Iterater:   
        
  對比LinkedList 和ArrayList的區別:

      1.存值方式不一樣:順序結構,鏈表結構

      2.使用場合不一樣:遍曆和隨機訪問;刪除和修改


6. 介紹泛型:

    學習泛型的原因?
    
       保證集合在【編譯期】存值時沒問題;那麼運行期取值也沒問題。

    作用: 在【編譯期】,控制接收元素的類型。
      
    泛型用在集合: 

   LinkedList<Integer> link = new LinkedList<Integer>();

   link.addFirst(567);
          link.add(12);
          link.add(111);
   System.out.println(link);
   
 Iterator<Integer> list=link.iterator();
 while(list.hasNext()){
  Integer i=list.next();
  System.out.println(i+1);
 }

7.集合的第二塊:

         Map  (鍵 值對,key無序唯一;value 無序 不唯一)

    HashMap      TreeMAP       HashTAble


(7.1)介紹:HashMap   

        存值方式: hash表格儲存體索引值對。

        HashMap  vs  Hashtable (瞭解)

        1. Hashtable 老jdk版本;HashMap  新版本

        2. Hashtable 安全執行緒; HashMap  效率高,線程不安全。

        3. HashMap  實現Map介面 ;Hashtable 繼承 Dictionary。
       
 4.hashMap允許空值,hashtable不允許空值

        相同:原理,演算法,存值方式相同。

   方法:

       增加: put(011, "北京");putAll(map1);

       刪除:remove(key); ---根據key ,去刪除 value

       查詢:get(key)--根據key ,去刪除 value。
      keySet()---返回鍵的集合
      values()---傳回值的集合
      containsKey(key)---如果存在由指定的鍵映射的“鍵-值對”,返回true

java物件導向中的集合

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.