熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java基礎之集合類

2013-11-23 18:50:03  來源: Java核心技術 
    為什麼會出現集合類?
   
    面向對象語言對事物的體現就是以對象的形式所以為了方便對多個對象的操作就要對對象進行存儲集合就是存儲對象的最常用的一種方式
   
    數組和集合為什麼不同?
   
    數組雖然也可以存儲對象但長度是固定的集合的長度是可以變的數組中可以存儲基本數據類型但集合只能存儲對象
   

  

 
    List
   
    List  特點是存入對象是有序的即存入什麼順序取出來就會是什麼順序而且裡面的元素是可以重復的
   
    List按照其底層數據存儲形式可以分為ArrayList和LinkedList前者是以級數為存儲方式後者以鏈表為存儲方式顯示前者適合檢索遍歷後者適合增加刪除
   
    Set
   
    Set的特點是不包含重復元素而且是無序的
   

  

 
    HashSet是底層使用哈稀表為存儲方式實現的Set集合HashSet給存入的每個對象計算出一個Hash值然後映射出一個存儲地址這樣很容易判斷出某個對象是否已經存在試想如果用ArrayList保證對象重復會有多麼麻煩假如集合中有萬個對象當添加個對象時需要進行次比較才能最後確定這個對象是否已經存在如果存在就不加入如果不存在就添加進去由此可見HashSet在這方面的優越性當我們的對象需要存儲到HashSet中時通常我們需要重寫hashCode方法和equals方法以我自己的規則判斷兩個對象是否相等比如在某種特定的情況下我們可以設定姓名和年齡都相等的兩個人就是同一個人
   
    HashSet是非線程同步的!
   
    TreeSet 該集合可以對Set集合中的元素進行排序底層是使用二叉樹作為數據結構排序性能比較高!
   
    排序的兩種實現方式
   
    元素需要實現Comparable接口覆蓋compareTo方法這種方式也稱為元素的自然順序或默認順序
   
    讓集合具備排序能力在創建集合的時候傳入一個自定義比較器自定義比較器要實現Comparator接口這樣就使得添加元素時集合都會按照比較器裡的要求將每次添加進的元素放到適當的位置也就是實現的排序
   
    Map
   
    Map是一種與Collection不同的集合是以key/value的形式存在的通過key找到對應的valuekey就像身份證號一樣需要唯一確定
   
    HashTable 底層是Hash表數據結構不可以存入null作為鍵和null作為值的情況Hashtable是線程同步的jdk 開始效率低
   
    HashMap 底導是hash表數據結構 並允許使用null作為鍵和null作為值不是線程同步的jdk開始 效率高
   
    TreeMap 底層是二叉樹作為數據結構線程不同步可以用於map集合中的按鍵排序
   
    Set和Map很像其實Set底層使用了Map集合
   
    Map集合的取出原理將map集合取出原理將map集合轉成Set集合再通過迭代器取出記住keySet和EntrySet方法的使用!
   
    Map的應用利用Properties類讀取配置文件(框架中經常用到)
   
    InputStream in = ReflectCollectionsclassgetResourceAsStream(configproperties
   
    Properties prop = new Properties()
   
    propload(in)
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25821.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.