更新時間:2018-09-06 來源:黑馬程序員技術(shù)社區(qū) 瀏覽量:
概念:集合類主要負(fù)責(zé)保存、封裝其他數(shù)據(jù),因此集合類也被稱為容器類。
1.儲存對象可以考慮:1數(shù)組2集合。
2.數(shù)組儲存對象的特點。student[] stu=new student [20];
>>弊端1.一旦創(chuàng)建,其長度不變。2.真實的數(shù)組存放的對象的個數(shù)是不可知的。
3.集合:分為collection和map兩種體系
注意:
①、集合只能存放對象。比如你存一個 int 型數(shù)據(jù) 1放入集合中,其實它是自動轉(zhuǎn)換成 Integer 類后存入的,Java中每一種基本類型都有對應(yīng)的引用類型。
②、集合存放的是多個對象的引用,對象本身還是放在堆內(nèi)存中。
③、集合可以存放不同類型,不限數(shù)量的數(shù)據(jù)類型。
Collection接口:
List接口:存儲元素?zé)o序、不可重復(fù)的集合 ---類似高中的“集合”
---ArrayList(主要的實現(xiàn)類),LinkedList,vector
Set接口:存儲元素有序,可重復(fù)的集合 ---”動態(tài)”數(shù)組(無序性!=隨機性)
----HashSet,LinkedHashSet,TreeSet
Collection使用的例子:
添加元素:collection.add("");
刪除指定元素:collection.remove("");
刪除所有元素(collection.clear): Collection c = new ArrayList(); c.add("Bob"); collection.removeAll(c);
判斷是否為空:collection.isEmrty();
判斷集合中的元素是否完全相同:equals(Object obj)
利用增強for循環(huán)遍歷集合: for(Object obj : collection){ System.out.println(obj); }
利用迭代器:Iterator: Iterator iterator = collection.iterator();
while(iterator.hasNext()){
Object obj = iterator.next();
System.out.println(obj);
}
1.Iterator:迭代器,它是Java集合的頂層接口(不包括 map 系列的集合,Map接口 是 map 系列集合的頂層接口)
Object next():返回迭代器剛越過的元素的引用,返回值是 Object,需要強制轉(zhuǎn)換成自己需要的類型
boolean hasNext():判斷容器內(nèi)是否還有可供訪問的元素
void remove():刪除迭代器剛越過的元素
2.ArrayList,List主要的實現(xiàn)類:
LIst常用方法:void add(int index, Object ele) :在指定的索引index為只添加元素ele(插)
Object get(int index) 獲取指定的元素(查)
int indexOf(Object obj) :返回obj在集合中首次出現(xiàn)的位置,沒有的話返回-1,(獲得指定對象的索引)
int lastIndexOf(Object obj) :返回obj在集合中最后一次出現(xiàn)的位置,沒有的話返回-1,
Object remove(int index) 刪除指定索引位置的元素(刪)
Object set(int index, Object ele) 設(shè)置指定索引位置的元素(改)
List subList(int fromIndex, int toIndex)返回從fromIndex到toindex結(jié)束的一個list
3.HashSet,Set主要的實現(xiàn)類:(Set接口是Collection的子接口,set接口沒有提供額外的方法)
特點:不能保證元素的順序;不可重復(fù);不是線程安全的;集合元素可以為 NULL;
Set hashSet = new HashSet();
Map接口:存儲“鍵-值”對的數(shù)據(jù);
1.具有映射關(guān)系“key-value對”的集合 ---類似于高中的“函數(shù)” y = f(x) (x1,y1) (x2,y2)。key相當(dāng)于變量value相當(dāng)于因變量。嚴(yán)格來說 Map 并不是一個集合,而是兩個集合之間 的映射關(guān)系。
2.因為 Map 集合即沒有實現(xiàn)于 Collection 接口,也沒有實現(xiàn) Iterable 接口,所以不能對 Map 集合進(jìn)行 for-each 遍歷。
Map遍歷:
【AI設(shè)計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個工作日,就業(yè)率已達(dá)到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開發(fā)-Java】畢業(yè)5個工作日就業(yè)率98.18%,最高薪資 17.5k*13薪,全班平均薪資9244元
2025-09-19