開發(fā)中經(jīng)常會用到數(shù)組跟集合帝璧,數(shù)組的長度是固定的先誉,集合的長度是可變的湿刽。數(shù)組中只能放同一種類型的元素,集合存儲的都是對象褐耳,類型可以不一致诈闺。
單列集合?java.util.Collection
雙列集合 java.util.Map
Collections工具類常用方法:
1. addAll方法的作用:將數(shù)組的元素全部添加指定的集合中
2. shuffle方法的作用:對集合元素亂序
3. sort方法的作用:對集合元素進行排序:默認 升序
1. List集合常用方法
public void add(int index, E element)指定位置添加元素
public E get(int index) 獲得指定位置的元素
public E remove(int index)? 刪除指定位置的元素,返回被刪除的元素
public E set(int index,E element) 修改指定位置的元素為新元素element
1. LinkedList集合底層結構和特點
?* 有序铃芦,有索引雅镊,可重復
?* 底層結構:鏈表(查詢慢,增刪快)
2. LinkedList源碼分析
無參數(shù)構造方法源碼分析:沒什么也沒發(fā)生
每次根據(jù)索引獲取元素時都會執(zhí)行遍歷操作杨帽,要么從頭開始遍歷要么從尾部開始遍歷
如果索引值小于元素個數(shù)的一半漓穿,則從頭開始遍歷查找
如果索引值大于等于元素個數(shù)的一半,則從尾部開始遍歷查找
LinkedList集合特有方法
public void addFirst(E e) :
public void addLast(E e) :
public E getFirst() :
public E getLast() :
public E removeFirst() :
public E removeLast() :
1. Set集合的特點:無序(存取順序不一致)注盈,無索引晃危,元素不可重復
2. Set集合常用子類
HashSet
LinkeHashSet
1. HashSet集合的特點和底層結構
* 特點:無序,無索引老客,元素不可重復
* 底層結構:哈希表(數(shù)組和鏈表的結合體)
2. HashSet集合遍歷方式
* 迭代器和增強for
?從HashSet集合中獲取元素:只能采用遍歷方式獲取
LinkedHashSet的特點和結構
* 特點:無索引僚饭,元素不可重復
* 底層結構:哈希表(數(shù)組和鏈表的結合體)+鏈表
* 繼承HashSet:能夠保證存取順序一致