Java學(xué)習(xí)筆記:集合,ArrayList,LinkedList,Vector,HashSet,contains(Object

集合:
保存數(shù)據(jù)的容器
集合的分類:
實現(xiàn)了list的接口集合(ArrayList,LinkedList,Vector)
實現(xiàn)了Set接口的集合(HashSet,TreeSet)
實現(xiàn)了Map接口的集合(HashMap,HashTable)
//ArrayList集合特點:
?//擁有下標(biāo),可以通過索引訪問
?//內(nèi)容長度可變
?//可以存儲任意數(shù)據(jù)類型
//構(gòu)造方法:
// new?ArrayList();//無參構(gòu)造,創(chuàng)建一個空集合
// new?ArrayList(E?extends?Collection???r):傳入實現(xiàn)了Collection接口的任意類
// new?ArrayList(int?i):創(chuàng)建一個指定大小的空集合
常用方法;
// int?size() 返回ArraList對象的大小,即元素的數(shù)量
// boolean?isEmpty() 判斷ArrayList對象是否為空,為空返回true,?否則返回false
// void?clear() 清空ArrayList對象中的所有元素
// boolean?add(Object?element) 向ArrayList對象中添加一個元素,該元素可以是任何類的對象
// Object?remove(int?index) 從ArrayList對象中刪除指定索引位置的元素
// Object?get(int?index) 返回指定索引位置的元素
// Object?set(int?index,?Object?elem) 將元素elem存放到由index指定的索引位置上
// int?indexOf(Object?element) 判斷element在ArrayList對象中是否存在,?存在返回對應(yīng)的索引,否則返回-1
contains(Object?o):判斷集合中是否包含o
LinkedList:
//linkedlist和arrayList的構(gòu)造方法一致,普通方法百分之90以上都是一樣的,
//所以我們學(xué)會了arraylist就相當(dāng)于學(xué)會了linkedlist
//LinkedList獨有的特性:采用鏈表存儲的線性集合,可以將內(nèi)存中不同的碎片區(qū)域連接起來存儲數(shù)據(jù)
//特性:快進(jìn)快出,對于一些獲取頭一個和最后一個內(nèi)容操作的時候速度特別快
// void?addFirst(Object?element) 將指定元素添加到鏈表的開始處
// void?addLast(Object?element) 將指定元素添加到鏈表的結(jié)尾處
// Object?removeFirst() 刪除鏈表中的第一個元素
// Object?removeLast() 刪除鏈表中的最后一個元素
// Object?getFirst() 返回鏈表中的第一個元素
// Object?getLast() 返回鏈表中的最后一個元素
Vector:
Vector和ArrayList它們的方法是完全一致的
區(qū)別:
Vector:對于多線程的同步運行時支持,因為其支持多線程,所以性能相較于ArrayList慢一點
ArrayList:?不支持多線程同步,速度相對來說快
HashSet特點:
// 無序(存儲和讀取的順序有可能不一樣)
// 不允許重復(fù)(元素唯一)
// 沒有索引
HashSet構(gòu)造方法:
HashSet?h=new?HashSet();//1.無參構(gòu)造
HashSet?h=new?HashSet(v);//2.實現(xiàn)了Collection接口的構(gòu)造
HashSet?h=new?HashSet(1000);//3.默認(rèn)設(shè)置內(nèi)存大小為1000
HashSet常用方法:
// Add(E?e):添加一條數(shù)據(jù)
// clear():清空數(shù)據(jù)
// Contains(Object?o):是否包含執(zhí)行的元素
// equals(Object?o):比較兩個對象是否相等
// hashCode():返回所在的哈希碼值
// isEmpth():判斷是否為空,為空則返回true
// Size():得到set的元素數(shù)
// toArray():將set轉(zhuǎn)換成數(shù)組