---------------------- ASP.Net+Unity開發、.Net培訓、期待與您交流! ----------------------
1.集合
1.概述
集合就是一個容器,是用來存儲對象的,裏面可以存儲不同的對象,只要是對象,就可以存儲,集合可以分爲很多種,他們的底層的存儲結構是不一樣的(數據結構),所以不同的集合有不同的功能,根據情況選擇不同集合。但是他們有共同的特點,就把特點抽取出來了,形成了接口Collection。
2.特點
集合可以存儲不同的對象,只要是對象,就可以存儲(一般情況下我們要存儲一樣的對象,否則讀取的時候就不容易讀取了),數組也是存存儲對象的,但是數組只能存儲相同的特點。
集合的長度是變化的,數組的度長是固定的。
3.常見集合框架
2.Collection
1.介紹
Collection集合是把所有集合共同的特點抽取出來後,存儲在Collection接口中。
2.Collection常用的方法
接口不能實例化,所以我們使用其一個常見子類來進行演示ArrayList.
增加:add(E e)使用了泛型,我們按時理解成Object,就是我們要執行我們在集合中存儲的數據類型,否則會有安全隱患。.
判斷:isEmpty() 判斷是否爲空
刪除:remove(Object o) ,clear()
裝換成數組:toArray()
獲取:使用的是迭代器
求交集:removeAll(Collectioncon),從此集合中移con集合中的元素。retainAll(Collectioncon):在此集合中保留集合con中也包含的元素
3.迭代器
迭代器是用來獲取集合中元素,其實迭代器是集合的內部類,因爲捏不累讀取本類的數據最方便,但是不同的集合他們的存儲的結構不同,並且每個集合都要讀取數據,所以就把他們共同的方法抽取出來,然後利用本類來返回他們自己的迭代器,這樣既方便又安全。
hasNext(),判斷元素是否可以迭代next()方法然後迭代的下一個元素remove()從集合中移除此元素
3.List集合
1.概述
list是Collection的子接口,他有自己的獨特的方法,他可以使用索引來操作集合中的數據,提供了自己迭代器。元素是有序的,裏面的元素可以重複
2.特有的方法
Add(index,element) addAll(index,Collection)
Remove(index) 通過索引刪除元素
subList(from,to),去集合中的一部分元素
listIterator(),這個比Iterator()中多了很多方法,裏面可以增加元素。增刪,該查,反向讀取都可以
4.List的子類
List
|-ArrayList:底層結構是數組,優點:當數據比較多的話,查詢數據效率高,缺點:增加和刪除效率低,原因移動的數據比較麻煩,說是可變的數組,原因是:默認長度是10,當超多此長度後,會以新建一個數組,長度增加50%,然後把原來的數組付給新的數組,然後再增加新的元素。
|-LinkedList :底層是數據結構是鏈表,各個元素都是使用指針鏈接起來 的,有點:增加和刪除效率高,缺點:查詢效率低
|-Vector:底層也是數組結構,但是是1.0版本以前的長度是100%的速度增長,ArrayList是1.2版本以後的,替換的此類,Vector集合線程同步,ArrayList線程不同步。
Vector有三種讀取方式:Iterator(),get(),還有自己特有的杜甫方式,枚舉讀取
下面介紹枚舉讀取:
5.LinkedList
特有方法
addFirst();addLast();
getFirst();getLast(); 獲取元素但是不刪除元素
removeFirst();removeLast();獲取元素但是刪除元素,如果不存在此元素,那麼據會拋出異常
1.6版本後的新方法
pollFirst();pollLast();獲取並移除第一個元素或者最後一個元素,如果不存在,返回爲null,不拋出異常。
offerFirst();offerlast();
peekFirst();peekLast();
---------------------- ASP.Net+Unity開發、.Net培訓、期待與您交流! ----------------------