JAVA基礎:七、集合框架Util

一、新內容(Util包)ArrayList/LinkedList,Vector,HashSet,迭代器Iterator,自定義比較器,HashMap
 一、Java的集合框架的使用
 1、什麼是集合框架?
   是一組類和接口,位於java.util包中,用來存儲和管理對象,分爲三大類:集合、列表、映射。
 2、集合的種類?
  三大類:集合、列表、映射。
  什麼是集合(set):集合中的對象不按特定方式排序,並且沒有重複對象。
  什麼是列表(list):  集合中的對象按照索引位置排序,可以有重複對象。
  什麼是映射(map):集合中的每一個元素包含一個鍵對象和一個值對象,鍵不可以重複,值可以重複。
 3、集合框架的結構?
 
  Collection--List--ArrayList
 4、
  ArrayList 對象是長度可變的對象引用數組,類似於動態數組
  繼承 AbstractList 並實現 List 接口
  隨着元素的添加,元素的數目會增加,列表也會隨着擴展
  訪問和遍歷對象時,它提供更好的性能
  add()    方法添加數據
  get(下標)
  size()    集合的長度
  remove(下標)    移除當前元素
  clear()    清除所有元素。
 5、LinkedList:鏈表結構的集合
      鏈表 ,類似與ArrayList,但存儲方式不相同(順序排放與鏈表結構排放)
      構造函數 : LinkedList();       LinkedList(int length); 
      常用方法:基本等同於ArrayList
             addFirst() addLast()
             getFirst() getLast()
             removeFirst:移除第一個
             removeLast:移除最後一個
  區別:Arraylist:檢索效率較高。LinkedList:刪除和修改效率較高。
HashMap:是鍵值對的方式保存數據,沒有索引。沒有順序。不能用重複的鍵。
 二、Collection接口
        1、Collection接口的常用方法:
                                          int size();
                                          boolean isEmpty();
                                          boolean add(E e);
                                          boolean remove(Object o);   
                                          void clear();
        2、由Collection接口派生的兩個接口是List和Set。
 三、Set和HashSet的使用方法
       主要方法: add(),remove(),size(),clear();          contains(o) 判斷是否包含對象o
       特點:不能添加重複對象。
       如何確定兩個對象是否相同:除了equals方法返回爲true,
        hashCode()方法返回值也必須相同,該返回值用來確定每個對象在set中的位置,
        只有相同才能保證會放到HashSet中的同一個位置。
        1、接口和實現接口和實現類:Collection--Set--HashSet
        2、代碼示例:TestHashSet.java
        3、Set不保存重複的元素。
        4、Set : 存入Set的每個元素都必須是唯一的,因爲Set不保存重複元素。
             加入Set的元素必須定義equals()方法以確保對象的唯一性。
             Set與Collection有完全一樣的接口。Set接口不保證維護元素的次序。
        5、HashSet : 它不允許出現重複元素;不保證集合中元素的順序,(沒有索引沒有鍵)
             可以自己做個例子可以看出加入的字段順序跟遍歷出的不一樣,
             允許包含值爲null的元素,但最多只能有一個null元素(不允許重複嘛!)。
 四、Iterator接口(迭代器:用於遍歷整個Set)
       Set集合沒有索引,不能使用get訪問,但所有Collection的子類都能通過迭代器進行循環訪問每個元素。
       1、主要方法: hasNext(); next();
       2、如何遍歷Collection中的每一個元素?
  不論Collection的實際類型如何,它都支持一個iterator()的方法,
  該方法返回一個迭代器對象,使用該迭代器對象即可逐一訪問Collection中每一個元素。
  典型的用法如下:
  Iterator it=collection.iterator();//獲得一個迭代器對象
  while(it.hasNext()){
        Object obj=it.next();//得到下一個元素
  }
       3、代碼示例:TestHashSet.java      
 五、Map類型集合:HashMap(HashMap是Map的實現類)
      1.與Collection集合不同,Map類型集合每個元素值都包含兩個對象:鍵--值
          鍵在Map中不能有重複對象
      2.主要方法:
                put(key,value);
                size();
                remove(key);
                clear();
                containsKey(key) 判斷是否包含鍵key
                containsValue(value)判斷是否包含值value
  其中put方法若添加重複的鍵,則表示覆蓋原來的鍵的值。
      3.Map不存在索引,但同樣可以實現循環訪問:
  使用:keySet()或entrySet()
      4.代碼示例:TestHashMap.java
 
 六、Collections 集合工具類
 java.lang.Object
   繼承者 java.util.Collections
   常用方法(靜態):sort(List) 給List類型的集合排序(排序類必須包含CompareTo方法)
                                    reverse(List) 將List類型的集合反轉
 
發佈了44 篇原創文章 · 獲贊 7 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章