Java中的集合框架
概念
Java中的集合類:是一種工具類,就像是容器,儲(chǔ)存任意數(shù)量的具有共同屬性的對(duì)象
集合的作用
集合框架的類型:
collection和map 都是接口,不能實(shí)例化
List和Queue有序、可重復(fù),Set無(wú)序、不可重復(fù)
list添加元素兩種add方法
1、直接添加,元素添加在隊(duì)尾;
對(duì)象存入集合都變成object類型,取出時(shí)需要類型轉(zhuǎn)換
2、指定位置添加,指定的位置(從0開始)不能超過(guò)隊(duì)列的長(zhǎng)度,否則報(bào)錯(cuò)(數(shù)組下標(biāo)越界)。
list的兩種addAll方法:添加類的數(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("添加了兩門課程:"+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("添加了兩門課程:"+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ǔ)元素的功能??梢哉f(shuō)它是依賴某個(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類型,需要強(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í)際編寫代碼中最好每個(gè)類中的屬性都私有(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)文章
MyBatis中insert操作返回主鍵的實(shí)現(xiàn)方法
在使用MyBatis做持久層時(shí),insert語(yǔ)句默認(rèn)是不返回記錄的主鍵值,而是返回插入的記錄條數(shù)。這篇文章主要介紹了MyBatis中insert操作返回主鍵的方法,需要的朋友可以參考下2016-09-09在Java中避免NullPointerException的解決方案
這篇文章主要介紹了在Java中避免NullPointerException的解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04Java定時(shí)器Timer與TimerTask的使用詳解
這篇文章主要介紹了Java定時(shí)器Timer與TimerTask的使用詳解,在JDK類庫(kù)中Timer主要負(fù)責(zé)計(jì)劃任務(wù)的功能,也就是在指定時(shí)間執(zhí)行某一任務(wù),執(zhí)行時(shí)候會(huì)在主線程之外起一個(gè)單獨(dú)的線程執(zhí)行指定的任務(wù),該類主要是設(shè)置任務(wù)計(jì)劃,但封裝的類是TimerTask類,需要的朋友可以參考下2023-10-10spring mvc4中相關(guān)注解的詳細(xì)講解教程
這篇文章主要給大家介紹了關(guān)于spring mvc4中相關(guān)注解的相關(guān)資料,其中詳細(xì)介紹了關(guān)于@Controller、@RequestMapping、@RathVariable、@RequestParam及@RequestBody等等注解的相關(guān)內(nèi)容,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-06-06SpringBoot集成Solr實(shí)現(xiàn)全文檢索功能
solr是一個(gè)現(xiàn)成的全文檢索引擎系統(tǒng), 放入tomcat下可以獨(dú)立運(yùn)行, 對(duì)外通過(guò)http協(xié)議提供全文檢索服務(wù),這篇文章給大家介紹了SpringBoot集成Solr實(shí)現(xiàn)全文檢索功能,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2024-03-03@Transactional遇到try catch失效的問(wèn)題
這篇文章主要介紹了@Transactional遇到try catch失效的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01