java集合類(二)

來源:互聯網
上載者:User

標籤:ons   更改   font   位置   hash   封裝   cal   應該   java集合   

第十六天知識點總結

一、泛型                                                                                                                                                                                                                                                                                                                                                                                                                         

 泛型:java jdk 1.5 新特性。

 泛型的好處:

      1.運行時的錯誤提前到編譯時間。

      2.避免無謂的強制類型轉換

  自訂方法泛型:自訂泛型就是一個資料類型的佔位或一個資料類型變數,一般用T或E來做這個預留位置號,預留位置號可以隨意寫,但是必須遵守標識符的命名規範

  方法泛型的格式:

   <預留位置> T : 定義了一個泛型

舉例:

Public  static  <T>T  test(T s){

    Return  s;

}

如果你傳進去的是一個基礎資料型別 (Elementary Data Type):接收的時候應該用它的封裝類來接收.

int Integer  short Short  double Double  float Float  byte Byte

boolean  Boolean  long Long  char charactor

自訂數組的工具類

定義一個泛型類:

      定義格式

   class 類名<聲明自訂的泛型> { }

泛型類的使用注意點:

   1.泛型類上定義的自訂泛型的類型是在建立這個類對象時確定的。

   2.如果一個自訂泛型的類,在建立對象時沒有指定,預設為Object類型。

   3.靜態方法不能夠使用類刪自訂的泛型,必須在方法上定義一個泛型。

 

泛型介面:

泛型介面的定義方式:

 Interface 介面名<聲明自訂的泛型> {   }

介面泛型的使用注意點:

1.介面上自訂的泛型在實現介面的時候被指定的

2.如果實現介面是沒有指定介面 ,那麼就會預設為Object

3.需要在建立介面實作類別對象是指定資料類型,

  那麼需要格式:class 類名<聲明自訂泛型> implements 介面<聲明自訂泛型>

 

判斷下列寫法是否錯誤:

   ArrayList<String> list1 = new ArrayList<String>(); //true

   ArrayList<String> list2 = new ArrayList<Integer>();//false

   ArrayList<Integer> list3 = new ArrayList<String>();//false

   

  1. ArrayList list4 = new ArrayList<String>();//true

  2. ArrayList<String> list5 = new ArrayList();//true

  推薦使用第一種

 

二、Map集合

  Map集合 介面 雙列集合 key:value 類似於OC中的字典

 特點:儲存資料是以鍵和值的方式,鍵不允許重複,值可以重複

-----> HashMap 基於雜湊表來儲存資料的

儲存原理也使用雜湊表來存放:

  往HashMap添加了元素,首先會調用鍵的hashCode方法獲得一個雜湊值,然後經過運算擷取一個位置。

 情況一:如果位置上沒有元素,那麼直接將該元素存放在此位置。

 情況二:如果位置上有元素,那麼還會調用元素的equals方法與位置上的元素做比較,如果返回的是true,那麼就被視為相同的鍵,就不存了,反之返回的是false,那麼就可以存放該元素。

-----> TreeMap:基於二叉樹的結構儲存,特點:以鍵來做自然排序

使用注意點:

1.往TreeMap裡添加元素時,如果元素的鍵具備自然排序功能,那麼就會通過自然排序進行排序。

2.往TreeMap裡添加元素時,如果元素的鍵不具備自然排序功能,鍵所屬的類必須要實現Comparable介面,把這個鍵的比較規則定義在compareTo方法中。

3.往TreeMap裡添加元素時,如果元素的鍵不具備自然排序功能,也沒有實現Comparable介面,建立TreeMap的時候給他一個比較子

結構:

 Class 類名implements Compartor 介面{

}

鍵的比較規則定義在compare方法中。

-----> HashTable :HashMap 一樣的使用,安全執行緒。訪問比較慢(瞭解)

Map集合的使用注意點:

   1.鍵可以是任意對象,值也可以是任意對象

   2.Map集合中是可以嵌套list集合

(重點掌握)Map集合常用的方法:

 添加:put(K key, V value);

       putAll(Map <?extends K,?extends V>  m);

 刪除:clear();

       remove(Object key);

 擷取:get(Object key);

       Size();

 判斷:isEmpty();

       containsKey(Object key);

       containsValue(Object value);

 

  Map集合的遍曆方式:

通過迭代器來遍曆:

  entrySet();

  keySet();

  values();

Map.Entry: 介面:提供給使用者來操作map集合

getKey(); 擷取鍵

getValue();擷取值

setValue();更改值

 

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.