java集合中l(wèi)ist的用法代碼示例
List接口是Collection接口的子接口,List有一個(gè)重要的實(shí)現(xiàn)類--ArrayList類,List中的元素是有序排列的而且可重復(fù),所以被稱為是序列。
List可以精確的控制每個(gè)元素的插入位置,或刪除某個(gè)位置元素,它的實(shí)現(xiàn)類ArrayList底層是由數(shù)組實(shí)現(xiàn)的。
List中有增刪改查的方法,我們可以通過(guò)例子演示:
我們通過(guò)對(duì)學(xué)生選課,來(lái)演示List中對(duì)課程增刪改查的方法
/** * 課程類 * @author lenovo * */ public class KeCheng { public String id; public String name; public KeCheng(String id,String name){ this.id = id; this.name = name; } }
創(chuàng)建一個(gè)學(xué)生類
import java.util.HashSet; import java.util.Set; /** * 學(xué)生類 * @author lenovo * */ public class Student { public String id; public String name; public Set kecheng; public Student(String id,String name){ this.id = id; this.name = name; this.kecheng = new HashSet(); } }
創(chuàng)建一個(gè)備選課程的類
/** * 備選課程類 * @author lenovo * */ public class ListTest { //用于存放備選課程的List public List beixuan; public ListTest(){ this.beixuan = new ArrayList(); } }
可以使用List中add方法添加課程
/* * 用來(lái)往beixuan里添加備選課程的方法 */ public void kcAdd(){ //創(chuàng)建一個(gè)課程的對(duì)象,調(diào)用add方法,添加到備選課程的List中 KeCheng kc = new KeCheng("1","數(shù)據(jù)結(jié)構(gòu)"); beixuan.add(kc); KeCheng kc2 = new KeCheng("2","C語(yǔ)言"); beixuan.add(0, kc2); KeCheng[] kcArr = {new KeCheng("3","大學(xué)語(yǔ)文"),new KeCheng("4","線性代數(shù)")}; beixuan.addAll(Arrays.asList(kcArr)); KeCheng[] kcArr2 = {new KeCheng("5","藝術(shù)設(shè)計(jì)"),new KeCheng("6","計(jì)算機(jī)基礎(chǔ)")}; beixuan.addAll(2, Arrays.asList(kcArr2)); }
使用get方法取出指定位置上的內(nèi)容,并用for循環(huán)遍歷出課程的內(nèi)容
/* * 使用for循環(huán)遍歷課程的方法 */ public void getKC(){ int size = beixuan.size(); System.out.println("使用for遍歷課程:"); for (int i = 0; i < size; i++) { KeCheng kc = (KeCheng) beixuan.get(i); System.out.println("課程:"+kc.id+":"+kc.name+";"); } }
遍歷List的內(nèi)容,除了使用for循環(huán)外,還可以使用迭代器、foreach等方法
/* * 使用Iterator迭代器遍歷課程 */ public void testIterator(){ Iterator it = beixuan.iterator(); System.out.println("使用Iterator遍歷課程:"); while(it.hasNext()){ KeCheng kc = (KeCheng) it.next(); System.out.println("課程:"+kc.id+":"+kc.name+";"); } } /* * 使用for each遍歷課程 */ public void testForeach(){ System.out.println("使用for each遍歷課程:"); for(Object obj : beixuan){ KeCheng kc = (KeCheng)obj; System.out.println("課程:"+kc.id+":"+kc.name+";"); } }
修改List中的元素,可以使用set方法
/* * 使用set方法添加課程 */ public void testModify(){ beixuan.set(0, new KeCheng("7","毛概")); }
刪除List中的元素有兩種方法,一是使用remove方法
/* * 使用remove方法刪除課程 */ public void testRemove(){ KeCheng kc = (KeCheng) beixuan.get(0); System.out.println("我是課程:"+kc.id+":"+kc.name+";即將被刪除"); boolean b = beixuan.remove(kc); if(b){ System.out.println("成功刪除課程"); testForeach(); } }
還可以使用removeAll方法刪除一個(gè)課程類型的數(shù)組
/* * 使用removeAll方法刪除課程 */ public void testRemoveAll(){ System.out.println("即將刪除4和5位置上的課程"); KeCheng[] kc = {(KeCheng) beixuan.get(4),(KeCheng) beixuan.get(5)}; beixuan.removeAll(Arrays.asList(kc)); System.out.println("課程刪除成功"); testForeach(); }
總結(jié)
以上就是本文關(guān)于java集合中l(wèi)ist的用法代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友繼續(xù)參閱本站:java集合中的list詳解、Java編程接口調(diào)用的作用及代碼分享、java并發(fā)學(xué)習(xí)之BlockingQueue實(shí)現(xiàn)生產(chǎn)者消費(fèi)者詳解等,有什么問(wèn)題可以隨時(shí)留言,小編會(huì)及時(shí)回復(fù)大家的。感謝朋友們對(duì)本站的支持!
- 如何去除Java中List集合中的重復(fù)數(shù)據(jù)
- Java中List集合的遍歷實(shí)例詳解
- Java判斷2個(gè)List集合是否相等(不考慮元素的順序)
- Java集合定義與用法實(shí)例總結(jié)【Set、List與Map】
- java使用lambda表達(dá)式對(duì)List集合進(jìn)行操作技巧(JDK1.8)
- Java中對(duì)List去重 Stream去重的解決方法
- java中List對(duì)象列表實(shí)現(xiàn)去重或取出及排序的方法
- java list去重操作實(shí)現(xiàn)方式
- Java中List集合對(duì)象去重及按屬性去重的8種方法
相關(guān)文章
idea啟動(dòng)多個(gè)SpringBoot服務(wù)實(shí)例的最優(yōu)解決方法
啟動(dòng)SpringBoot項(xiàng)目其實(shí)就是啟動(dòng)Tomcat等服務(wù)容器,只要這個(gè)端口不同就能啟動(dòng)多個(gè)服務(wù)實(shí)例了,本文主要介紹了idea啟動(dòng)多個(gè)SpringBoot服務(wù)實(shí)例的最優(yōu)解決方法,感興趣的可以了解一下2024-05-05Java實(shí)現(xiàn)發(fā)送郵件功能時(shí)碰到的坑
之前用163郵箱發(fā)郵件時(shí)明明是成功的,但是使用中國(guó)移動(dòng)自己的郵箱時(shí),無(wú)論如何在linux服務(wù)器中都發(fā)送不成功。下面小編給大家說(shuō)下我是怎么解決的,一起看下吧2016-06-06Maven入門之使用Nexus搭建Maven私服及上傳下載jar包
這篇文章主要介紹了Maven入門之使用Nexus搭建Maven私服及上傳下載jar包,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Java常用鎖synchronized和ReentrantLock的區(qū)別
這篇文章主要介紹了Java常用鎖synchronized和ReentrantLock的區(qū)別,二者的功效都是相同的,但又有很多不同點(diǎn),下面我們就進(jìn)入文章了解具體的相關(guān)內(nèi)容吧。需要的小伙伴也可以參考一下2022-05-05Java方法參數(shù)傳遞如何實(shí)現(xiàn)
這篇文章主要介紹了Java方法參數(shù)傳遞如何實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05SpringBoot核心@SpringBootApplication使用介紹
這篇文章主要介紹了SpringBoot核心@SpringBootApplication的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03java 生成有序賬號(hào)的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇java 生成有序賬號(hào)的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10SpringBoot整合token實(shí)現(xiàn)登錄認(rèn)證的示例代碼
本文主要介紹了SpringBoot整合token實(shí)現(xiàn)登錄認(rèn)證的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07MyBatisPlus利用Service實(shí)現(xiàn)獲取數(shù)據(jù)列表
這篇文章主要為大家詳細(xì)介紹了怎樣使用 IServer 提供的 list 方法查詢多條數(shù)據(jù),這些方法將根據(jù)查詢條件獲取多條數(shù)據(jù),感興趣的可以了解一下2022-06-06