Java中的集合框架
概念
Java中的集合類(lèi):是一種工具類(lèi),就像是容器,儲(chǔ)存任意數(shù)量的具有共同屬性的對(duì)象
集合的作用


集合框架的類(lèi)型:
collection和map 都是接口,不能實(shí)例化
List和Queue有序、可重復(fù),Set無(wú)序、不可重復(fù)

list添加元素兩種add方法
1、直接添加,元素添加在隊(duì)尾;
對(duì)象存入集合都變成object類(lèi)型,取出時(shí)需要類(lèi)型轉(zhuǎn)換
2、指定位置添加,指定的位置(從0開(kāi)始)不能超過(guò)隊(duì)列的長(zhǎng)度,否則報(bào)錯(cuò)(數(shù)組下標(biāo)越界)。
list的兩種addAll方法:添加類(lèi)的數(shù)組
public void testAdd(){
//add方法一
Course cr1 = new Course("1", "課程一");
coursesToSelect.add(cr1);
Course temp = (Course)coursesToSelect.get(0);
System.out.println("添加了課程:"+temp.id+":"+temp.name);
//add方法二,添加到指定位置
Course cr2 = new Course("2", "課程二");
coursesToSelect.add(0, cr2);;
Course temp2 = (Course)coursesToSelect.get(0);
System.out.println("添加了課程:"+temp2.id+":"+temp2.name);
//addAll數(shù)組添加方法一
Course[] cr34 = {new Course("3", "課程三"), new Course("4", "課程四")};
coursesToSelect.addAll(Arrays.asList(cr34));//添加數(shù)組的方法
Course temp3 = (Course)coursesToSelect.get(2);
Course temp4 = (Course)coursesToSelect.get(3);
System.out.println("添加了兩門(mén)課程:"+temp3.id+":"+temp3.name+
";"+temp4.id+":"+temp4.name);
//addAll數(shù)組添加方法二,添加到指定位置
Course[] cr56 = {new Course("5", "課程五"), new Course("6", "課程六")};
coursesToSelect.addAll(2, Arrays.asList(cr56));
Course temp5 = (Course)coursesToSelect.get(2);
Course temp6 = (Course)coursesToSelect.get(3);
System.out.println("添加了兩門(mén)課程:"+temp5.id+":"+temp5.name+
";"+temp6.id+":"+temp6.name);
}
遍歷List
1.for循環(huán)遍歷
/**
* 取得List中的元素的方法
* @param args
*/
public void testGet(){
int size = coursesToSelect.size();
System.out.println("有如下課程待選:");
for(int i=0; i<size;i++){
Course cr = (Course)coursesToSelect.get(i);
System.out.println("課程:"+cr.id+":"+cr.name);
}
}
2.通過(guò)迭代器來(lái)遍歷List,迭代器只是用來(lái)遍歷集合中元素的,本身不具有存儲(chǔ)元素的功能。可以說(shuō)它是依賴(lài)某個(gè)集合存在的,不能獨(dú)立存在。
/**
* 通過(guò)迭代器來(lái)遍歷List
* @param args
*/
public void testIterator(){
Iterator it = coursesToSelect.iterator();
System.out.println("有如下課程待選(迭代器):");
while(it.hasNext()){
Course cr = (Course)it.next();//Iterator的next方法
System.out.println("課程:"+cr.id+":"+cr.name);
}
}
3.通過(guò)for each 方法訪問(wèn)集合元素
/**
* 通過(guò)for each 方法訪問(wèn)集合元素
* @param args
*/
public void testForEach(){
System.out.println("有如下課程待選(for each):");
for(Object obj:coursesToSelect){
Course cr = (Course)obj;//取出的元素一致都為Object類(lèi)型,需要強(qiáng)轉(zhuǎn)
System.out.println("課程:"+cr.id+":"+cr.name);
}
}
修改List中的元素。List中有個(gè)Set方法
/**
* 修改List中的元素
* @param args
*/
public void testModify(){
coursesToSelect.set(4, new Course("7", "課程七"));
}
刪除List中的元素。與add相似,有remove和removeAll兩種
/**
* 刪除List中的元素
* @param args
*/
public void testRemore(){
Course cr = (Course)coursesToSelect.get(4);
System.out.println("我是課程:"+cr.id+":"+cr.name+",我即將被刪除了");
coursesToSelect.remove(cr);
System.out.println("刪掉了。。");
testForEach();//方法內(nèi)部調(diào)用方法
}
上述remove()中也可直接放入索引下標(biāo),即可直接刪除。如remove(4)
removeAll是從一個(gè)集合中將另一個(gè)集合中的所有元素全部刪除。
public void testRemore(){
Course[] courses={(Course)coursesToSelect.get(3),(Course)coursesToSelect.get(4)};
System.out.println("我是課程:3,4,我即將被刪除了");
coursesToSelect.removeAll(Arrays.asList(courses));
System.out.println("刪掉了。。");
testForEach();//方法內(nèi)部調(diào)用方法
}
**實(shí)際編寫(xiě)代碼中最好每個(gè)類(lèi)中的屬性都私有(private),需要使用時(shí)再用getXX或setXX
private String id;
public String getId(){
return id;
}
public String setId(){
this.id=id;
}
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
解決 java: 程序包c(diǎn)om.baomidou.mybatisplus.annotation不存在
在使用Java編寫(xiě)程序時(shí),經(jīng)常會(huì)遇到各種編譯錯(cuò)誤或運(yùn)行時(shí)異常,本文主要介紹了解決java:程序包c(diǎn)om.baomidou.mybatisplus.annotation不存在,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Spring項(xiàng)目中使用Junit單元測(cè)試并配置數(shù)據(jù)源的操作
這篇文章主要介紹了Spring項(xiàng)目中使用Junit單元測(cè)試并配置數(shù)據(jù)源的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
SpringCloud如何根據(jù)服務(wù)名獲取服務(wù)運(yùn)行實(shí)例并進(jìn)行負(fù)載均衡
文章介紹了SpringCloud中使用Nacos作為注冊(cè)中心時(shí),服務(wù)注冊(cè)和發(fā)現(xiàn)的過(guò)程,以及如何通過(guò)DiscoveryClient接口和LoadBalancerClient類(lèi)進(jìn)行服務(wù)的負(fù)載均衡,感興趣的朋友跟隨小編一起看看吧2025-01-01
SpringCloud輪詢(xún)拉取注冊(cè)表與服務(wù)發(fā)現(xiàn)流程詳解
這篇文章主要介紹了SpringCloud輪詢(xún)拉取注冊(cè)表與服務(wù)發(fā)現(xiàn),現(xiàn)在很多創(chuàng)業(yè)公司都開(kāi)始往springcloud靠了,可能是由于文檔和組件比較豐富的原因吧,畢竟是一款目前來(lái)說(shuō)比較完善的微服務(wù)架構(gòu)2022-11-11
Java多線程 樂(lè)觀鎖和CAS機(jī)制詳細(xì)
這篇文章主要介紹了Java多線程 樂(lè)觀鎖和CAS機(jī)制,樂(lè)觀鎖是對(duì)于數(shù)據(jù)沖突保持一種樂(lè)觀態(tài)度,操作數(shù)據(jù)時(shí)不會(huì)對(duì)操作的數(shù)據(jù)進(jìn)行加鎖,需要的朋友可以參考下2021-10-10
學(xué)習(xí)Java HashMap,看這篇就夠了
這篇文章主要介紹了Java HashMap的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
SpringMVC使用@PathVariable接收參數(shù)過(guò)程解析
這篇文章主要介紹了SpringMVC使用@PathVariable接收參數(shù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10

