黑馬程序員之<collection list>

---------------------- ASP.Net+Unity開發.Net培訓、期待與您交流! ----------------------

1.集合

1.概述

集合就是一個容器,是用來存儲對象的,裏面可以存儲不同的對象,只要是對象,就可以存儲,集合可以分爲很多種,他們的底層的存儲結構是不一樣的(數據結構),所以不同的集合有不同的功能,根據情況選擇不同集合。但是他們有共同的特點,就把特點抽取出來了,形成了接口Collection。

2.特點

集合可以存儲不同的對象,只要是對象,就可以存儲(一般情況下我們要存儲一樣的對象,否則讀取的時候就不容易讀取了),數組也是存存儲對象的,但是數組只能存儲相同的特點。

 集合的長度是變化的,數組的度長是固定的。

 3.常見集合框架

113049474.jpg

2.Collection

1.介紹

Collection集合是把所有集合共同的特點抽取出來後,存儲在Collection接口中。

 2.Collection常用的方法

接口不能實例化,所以我們使用其一個常見子類來進行演示ArrayList.

  增加:add(E e)使用了泛型,我們按時理解成Object,就是我們要執行我們在集合中存儲的數據類型,否則會有安全隱患。.

  判斷:isEmpty() 判斷是否爲空

  刪除:remove(Object o) ,clear()

  裝換成數組:toArray()

  獲取:使用的是迭代器

  求交集:removeAll(Collectioncon),從此集合中移con集合中的元素。retainAll(Collectioncon):在此集合中保留集合con中也包含的元素

110850970.jpg運行結果:

111517891.jpg

3.迭代器

 迭代器是用來獲取集合中元素,其實迭代器是集合的內部類,因爲捏不累讀取本類的數據最方便,但是不同的集合他們的存儲的結構不同,並且每個集合都要讀取數據,所以就把他們共同的方法抽取出來,然後利用本類來返回他們自己的迭代器,這樣既方便又安全。

 hasNext(),判斷元素是否可以迭代next()方法然後迭代的下一個元素remove()從集合中移除此元素

111740147.jpg

3.List集合

1.概述

list是Collection的子接口,他有自己的獨特的方法,他可以使用索引來操作集合中的數據,提供了自己迭代器。元素是有序的,裏面的元素可以重複

2.特有的方法

 Add(index,element) addAll(index,Collection)

 Remove(index) 通過索引刪除元素

 subList(from,to),去集合中的一部分元素

 listIterator(),這個比Iterator()中多了很多方法,裏面可以增加元素。增刪,該查,反向讀取都可以

111959127.jpg

4.List的子類

List

 |-ArrayList:底層結構是數組,優點:當數據比較多的話,查詢數據效率高,缺點:增加和刪除效率低,原因移動的數據比較麻煩,說是可變的數組,原因是:默認長度是10,當超多此長度後,會以新建一個數組,長度增加50%,然後把原來的數組付給新的數組,然後再增加新的元素。

 |-LinkedList :底層是數據結構是鏈表,各個元素都是使用指針鏈接起來 的,有點:增加和刪除效率高,缺點:查詢效率低

 |-Vector:底層也是數組結構,但是是1.0版本以前的長度是100%的速度增長,ArrayList是1.2版本以後的,替換的此類,Vector集合線程同步,ArrayList線程不同步。



Vector有三種讀取方式:Iterator(),get(),還有自己特有的杜甫方式,枚舉讀取

下面介紹枚舉讀取:

112154581.jpg

5.LinkedList

  特有方法

  addFirst();addLast();

  getFirst();getLast(); 獲取元素但是不刪除元素

  removeFirst();removeLast();獲取元素但是刪除元素,如果不存在此元素,那麼據會拋出異常

  1.6版本後的新方法

  pollFirst();pollLast();獲取並移除第一個元素或者最後一個元素,如果不存在,返回爲null,不拋出異常。

  offerFirst();offerlast();

  peekFirst();peekLast();

112328975.jpg

---------------------- ASP.Net+Unity開發.Net培訓、期待與您交流! ----------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章