Collection集合框架

    一,Collection集合框架

    在實際開發中,將使用的對象存儲到特定數據結構的容器中,而JDK提供了這樣的容器——集合框架,集合框架中包含了一系列不一樣數據結構的實現類。
java

    1)Collection經常使用方法
數組

        ①int size():返回包含對象的個數,
安全

        ②boolean isEmpty():返回是否爲空,
數據結構

        ③boolean contains(Object o):判斷是否包含某指定對象,
框架

        ④boolean add(E e) :向集合中添加對象,
性能

        ⑤boolean remove(Object o):從集合中刪除對象。
spa

    2)Collection 與Collections的區別?
線程

        Collection是java.util下的接口,是各類集合的父接口,繼承於他的接口有list,set。Collections是java.util下的類,是針對集合的幫助類,提供一系列的靜態方法,對各類集合進行檢索,排序,線程安全化操做。
code

    二,List集合的實現類:ArrayList和LinkedList

    List接口是Collection的子接口,用於定義線性表數據結構,元素能夠重複,有序的,有索引值。能夠將list理解爲存儲對象的數組,只不過其元素能夠動態的增長或減小。
對象

    1)List接口有兩個實現類:ArrayList和LinkedList。分別用動態數組和鏈表的方式實現了List接口。List、ArrayList和LinkedList在java.util包下。

    2)能夠認爲ArrayList和LinedList方法在邏輯上是同樣的,只是在性能上有必定的差異,ArrayList更適合隨機的訪問,而LinkedList更適合插入、刪除。在性能要求不是特別苛刻的話能夠忽略這個差異。

    3)使用List咱們不須要再集合建立的時候就慮集合的容量,容量是根據保存的元素來決定的,集合的容量能夠激動擴充。

    4)List的實現類會重寫toString方法,依次調用集合中對象的toString方法,返回集合中所包含的對象的字符串。

    5)List集合的經常使用方法:

        ①add(Object obj):向集合末尾增長新元素,集合能夠存放各類類型的元素,可是咱們幾乎不會向集合中添加不一樣類型的元素。

        ②size():返回當前集合中存放元素的數量。

        ③clear():用於清空集合。

        ④isEmpty():用於返回集合是否爲空。

List list = new ArrayList() ;
    list.add("Hello") ;
    list.add("World") ;
    list.add(1) ;    //不建議這樣添加,一個集合最好存放一種類型元素。
    System.out.println(list.size()) ;    //返回集合中存放元素的數量
    System.out.println(list) ;    //System.out.println(list.toString());//查看集合中元素
    //ArrayList()重寫了toString()方法,返回的字符串是每一個元素的toString()方法返回的序列。
    list.clear();    //清空,System.out.println("集合清空後的數量"+list.size());
    System.out.println("集合是否爲空?"+list.isEmpty());

        ⑤contains(Object obj)方法:檢查給定的對象是否包含在集合中,檢查規則將obj對象與集合中元素進行equals比較,若是對比了全部元素都沒有equals爲true,則返回false。

        ⑥boolean remove(Object obj)方法:刪除元素,首先不重寫equals,在集合中根據對象地址匹配,若是沒有匹配到,則不刪除,重寫equals方法,爲內容比較,匹配成功,則刪除第一個,則退出,其餘的內容即便相同也不會刪除。

List list = new ArrayList() ;//多態的寫法//ArrayList arraylist = new ArrayList() ;//正常寫法
    list.add(new Point(1,2)) ;   //Point point = new Point(1,2); list.add(point) ;   //等量交換
    list.add(new Point(3,4)) ;
    list.add(new Point(5,6)) ;
    System.out.println("集合中的元素數量:"+list.size()) ;
    //查看集合中元素
    System.out.println(list) ;    ==  System.out.println(list.toString());
Point p = new Point(1,2) ;    //定義一個對象
    System.out.println("查看p是否在集合中存在"+list.contains(p)) ;//不重寫equals比較地址爲false,重寫equals爲true。    
    System.out.println("刪除前元素:"+list) ;
    list.remove(p);
    System.out.println("刪除後集合:"+list) ;

        ⑦E remove(int index)方法:移除此集合列表中指定位置的元素,向左移動後續元素,爲了防止漏刪,必須從後往前刪。

List list = new ArrayList() ;
    list.add("Hello") ;
    list.add("World") ;
    list.add("World") ;
    list.add("Hello") ;
    //相鄰的元素刪不掉
    for(int i=0;i<list.size();i++){
        if("Hello".equals(list.get(i))
        list.remove(i) ;
    }
    //匹配的都刪乾淨,從後往前刪
    for(int i=list.size()-1;i>=0;i--){
        if("Hello".equals(list.get(i)) ;
        list.remove(i) ;
    }

        ⑧addAll(Collection c)方法:容許將c對應的集合元素都存入到該集合,即並集。這裏的參數是Collection,即任何元素類型均可以將元素存入到其餘集合中。

        ⑨removeAll(Collection c)方法:刪除與另外一個集合中相同的元素。它的相同邏輯經過equals判斷。

        10,retainAll(Collection c)方法:保留與另外一個集合相同的元素,即取交集,它的相同邏輯經過equals判斷。

list1.addAll(list2) ;    //將list3集合中元素存入到list1集合,表示並集
list1.removeAll(list3) ;    //將list1集合中元素中的list3集合中相同(equals爲true)元素刪除
list1.retainAll(list2) ;   //將list1與list2集合中相同元素保留經過equals爲true判斷。

        11,Object get(int index)方法:根據元素下標取得對應位置的元素並返回,這裏元素下標和數組同樣。

        12,add(int index,Object newElement())方法:使用add的重載方法,向index位置插入newElement(),原位置的元素向後移,即所謂插隊。

        13,Object remove(int index)方法:根據下標刪除對應元素,並返回被刪除元素。

        14,Comparable接口:針對對象數據和集合中元素進行排序時,首先要肯定對象元素的比較邏輯。Comparable接口用於表示對象間的大小關係。

        15,Comparator接口:比較器。建立步驟:A,定義一個類實現Comparator接口。B,實現接口中的抽象compara(E 01,E 02)方法,C,實例化這個類即實例化比較器,D,調用collections重載方法 sort(Collection c,Comparator comparator)進行排序,

相關文章
相關標籤/搜索