天天看點

Java基礎——集合(一)——集合體系、Collection集合

一、集合概述

         Java是一種面向對象語言,如果我們要針對多個對象進行操作,就必須對多個對象進行存儲。而數組長度固定,不能滿足變化的要求。是以,java提供了集合。

         特點

                1.        長度可以發生改變

                2.        隻能存儲對象

                3.        可以存儲多種類型對象

           與數組差別          

數組 集合
長度 固定 可變
存儲元素 基本類型/引用類型 引用類型
元素類型的一緻性 必須一緻 可以不一緻

二、集合體系

          集合作為一個容器,可以存儲多個元素,但是由于資料結構的不同,java提供了多種集合類。将集合類中共性的功能,不斷向上抽取,最終形成了集合體系結構。

          資料結構:資料存儲的方式

          Java中集合類的關系圖

Java基礎——集合(一)——集合體系、Collection集合

         集合體系導圖(用滑鼠拖動圖檔可看大圖或右擊圖檔選擇在新标簽頁中打開圖檔(I))

Java基礎——集合(一)——集合體系、Collection集合

三、Collection

           Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素(Elements)。一些Collection允許相同的元素而另一些不行。一些能排序而另一些不行,于是衍生出兩個子類接口List和Set。

Java基礎——集合(一)——集合體系、Collection集合

      Collection基本功能

          A:添加功能

                          boolean add(Object obj):向集合中添加一個元素

                          boolean addAll(Collection c):向集合中添加一個集合的元素。

          B:删除功能

                          void clear():删除集合中的所有元素。

                          boolean remove(Object obj):從集合中删除指定的元素

                          boolean removeAll(Collection c):從集合中删除一個指定的集合元素。

          C:判斷功能

                          boolean isEmpty():判斷集合是否為空。

                          boolean contains(Object obj):判斷集合中是否存在指定的元素。

                          boolean containsAll(Collection c):判斷集合中是否存在指定的一個集合中的元素。

          D:周遊功能

                          Iterator iterator():就是用來擷取集合中每一個元素。

          E:長度功能

                          int size():擷取集合中的元素個數

          F:交集功能

                          boolean retainAll(Collection c):判斷兩個集合中是否有相同的元素。???

          G:把集合轉換成數組

                          Object[] toArray():把集合變成數組。

       List接口

            List接口下的集合元素存儲有序,可以重複。

            List的特有功能

              A:添加功能

                  void add(int index, Object obj):在指定位置添加元素

              B:删除功能

                  Object remove(int index):根據指定索引删除元素,并把删除的元素傳回。

              C:修改功能

                  Object set(int index, Object obj):把指定索引位置的元素修改為指定的值,傳回修改前的值。

              D:擷取功能

                  int indexOf(Object o):傳回指定元素在集合中第一次出現的索引

                  Object get(int index):擷取指定位置的元素

                  ListIterator listIterator():清單疊代器

              E:截取功能

                  List subList(int fromIndex, int toIndex):截取集合。

      Set 接口

               Set接口下的元素無序,不可以重複。其下面分為HashSet和TreeSet。

              HashSet

               底層資料結構是哈希表,線程不安全,效率高。

               保證唯一性依賴兩個方法:hashCode()和equals()。

               順序:

                       判斷hashCode()值是否相同。

                       相同:繼續走equals(),看傳回值

                                   如果true:就不添加到集合。

                                   如果false:就添加到集合。

                       不同:就添加到集合。

              TreeSet

                底層資料結構是二叉樹,線程不安全,效率高。

                保證元素唯一性的方法時根據傳回值是否是0。

                保證排序的兩種方式:

                        自然排序(元素具備比較性):實作Comparable接口

                        比較器排序(集合具備比較性):實作Comparator接口

              未完待續,下篇為疊代器+Map集合