Java三大集合框架

定義:java中集合類:是一種工具類,就像是容器,儲存任意數量的具備共同屬性的對象java

一.List集合

   1.List實現的超級父類接口:Collection算法

   2.瞭解ArrayList類數組

    A):定義的格式:Array<具體類型>集合名=new Array<具體類型>();框架

    B):數據的儲存方式:底層仍是用數組儲存工具

    C):對象的類型: 在List集合中,若是定義集合對象時沒有定義定義對象的類型,就表示什麼類型的對象均可以直接存儲到List集合中,若是想要運用裏面的元素,則須要用instanceof來判斷元素的類型。格式 :元素 instanceof 所判斷的類型;返回true或false。後續須要強轉。spa

     D):集合的設計:泛型的方式進行類型指定,ArrayList<具體類型>設計

               特色:元素有序、可重複,可變大小的容器code

               遍歷:for循環便可對象

     E):基本操做:blog

                              增長:集合名.add(元素); 加在集合最後,

                              集合名.add(數字,元素); 加載指定的位置

                              集合名.addAll(另外一個集合名);  加在最後

                              集合名.addAll(數字,另外一個集合名);   加載指定位置

                              刪除:集合名.remove(數字);   移去指定位置的元素

                              集合名.remove(元素);   移去集合中第一次出現的指定元素(若是存在)

                              集合名.removeALL(另外一個集合名);  移去另外一個集合中的全部元素

                              集合名.retaintALL(另外一個集合名);   僅保留另外一個集合中的全部元素

                              集合名.clear();  清空集合

                              判斷/得到:集合名.get(數字);   得到指定位置的元素

                              集合名.contains(元素);   判斷集合是否包含該元素,是則返回true

                              集合名.contains(另外一個集合名); 判斷是否包含另外一個集合的全部元素

                              集合名.indexOf(元素);   返回該元素的索引,無則返回-1

                              集合名.equals(元素); 判斷該元素是否與集合的元素一致  返回true或false

                              改:集合名.set(數字,元素); 用該元素替換指定位置的元素

                              其它:集合名.size(); 獲取集合的大小

LinkedList:

一樣實現List接口的LinkedList與ArrayList不一樣,ArrayList是一個動態數組,而LinkedList是一個雙向鏈表。因此它除了有ArrayList的基本操做方法外還額外提供了get,remove,insert方法在LinkedList的首部或尾部。

      因爲實現的方式不一樣,LinkedList不能隨機訪問,它全部的操做都是要按照雙重鏈表的須要執行。在列表中索引的操做將從開頭或結尾遍歷列表(從靠近指定索引的一端)。這樣作的好處就是能夠經過較低的代價在List中進行插入和刪除操做。

addFirst:在列表的首部添加元素

addLast:在列表末尾添加元素

getFirst:返回列表中的第一個元素

getLast:返回列表中最後一個元素

removeFirst:刪除並返回列表中的第一個元素

removeLast:刪除並返回列表中的最後一個元素

Java集合框架的體系結構:

二.Set接口:

                         一、Set實現的超級父類接口:Collection                           

                          二、瞭解HashSet類

                                A):定義的格式:  HashSet<具體類型> 集合名 =  HashSet<具體類型>();

                                B):數據的存儲方式:遵循Hash算法來存儲數據

                                C):對象的類型:必需要定義集合對象類型,不然會影響後續的使用

                                D):集合的設計:泛型的方式進行類型指定:HashSet<具體類型>

                                                             特色:元素無序、不可重複,可變大小的容器

                                                             注意:底層並不是真正的無序,遵循Hash算法來保證數據的存儲,可是咱們做爲使用者,就理解爲無序

                                                             遍歷:須要使用迭代器:Iterator<類型> 名稱 = 集合名.iterator();

 

                                E):基本操做:

                                      增長:集合名.add(元素);   添加指定元素(以前集合不過包含的)

                                      刪除:集合名.remove(元素);  移去指定的元素

                                      集合名.clear();    清空集合

                                      判斷:集合名.containts(元素);  若是集合包含此元素,返回true

                                      其它:集合名.size();   得到集合的大小

                                     Iterator<類型> 名稱 = 集合名.iterator();  用於集合的遍歷

Set和List的區別

  • 1. Set 接口實例存儲的是無序的,不重複的數據。List 接口實例存儲的是有序的,能夠重複的元素。

  • 2. Set檢索效率低下,刪除和插入效率高,插入和刪除不會引發元素位置改變 <實現類有HashSet,TreeSet>

  • 3. List和數組相似,能夠動態增加,根據實際存儲的數據的長度自動增加List的長度。查找元素效率高,插入刪除效率低,由於會引發其餘元素位置改變 <實現類有ArrayList,LinkedList,Vector>

3、Map集合

一、Map沒有實現的超級父類接口,不是Collection的直接接口子類

 

二、瞭解HashMap類

A):定義的格式:HashMap<類型,類型> 集合名 = new HashMap<類型,類型>();

 

B):數據的存儲方法:key+value的存儲方式

 

C):對象的類型:必需要定義集合對象類型,不然會影響後續的使用

 

D)集合的設計:泛型的方式進行類型的指定:HashMap<具體類型>

                      特色:一條數據,是由兩部分組成:鍵和值,元素無序、不可重複, 可變大小的容器

      遍歷:須要使用鍵的迭代器   Set<類型> 名稱1 = 集合名.keySet();

Iterator<類型> 名稱 = 名稱1.iterator();

E):基本操做

增長:集合名.put(鍵,值);  在此映射中關聯指定值與指定鍵(是put,不是add)

刪除:集合名.remove(鍵);  從映射中移除指定鍵的映射關係(若是存在)

判斷:集合名.containsKey(鍵);  若是此映射包含對於指定鍵的映射關係,返回true

  集合名.containsValue(值); 若是此映射將一個或多個鍵映射到指定值,返回true

其它:集合名.size();  得到集合的大小

 

注意:在Map集合中,一個鍵只能對應有一個值,但一個值能夠有多個鍵對應,若是說放(put)了一個相同的鍵到map中,則新元素會替換原來的元素,會把替換掉的元素返回出來,你能夠接收到,並作後續處理

hasNext和next方法:

boolean hasNext():判斷集合是否還有元素能夠遍歷

E next():返回迭代的下一個元素

Iterator:   

iterator是一個接口,集合再覆蓋Collection的方法時提供迭代器的實現

import java.util.*; public class Test{ public static void main(String[] args) { List<String> list=new ArrayList<String>(); list.add("Hello"); list.add("World"); list.add("HAHAHAHA"); //第一種遍歷方法使用foreach遍歷List
     for (String str : list) {            //也能夠改寫for(int i=0;i<list.size();i++)這種形式
 System.out.println(str); } //第二種遍歷,把鏈表變爲數組相關的內容進行遍歷
     String[] strArray=new String[list.size()]; list.toArray(strArray); for(int i=0;i<strArray.length;i++) //這裏也能夠改寫爲 foreach(String str:strArray)這種形式
 { System.out.println(strArray[i]); } //第三種遍歷 使用迭代器進行相關遍歷
 Iterator<String> ite=list.iterator(); while(ite.hasNext())//判斷下一個元素以後有值
 { System.out.println(ite.next()); } } }
相關文章
相關標籤/搜索