java集合中l(wèi)ist的用法代碼示例
List接口是Collection接口的子接口,List有一個重要的實現(xiàn)類--ArrayList類,List中的元素是有序排列的而且可重復,所以被稱為是序列。
List可以精確的控制每個元素的插入位置,或刪除某個位置元素,它的實現(xiàn)類ArrayList底層是由數(shù)組實現(xiàn)的。
List中有增刪改查的方法,我們可以通過例子演示:
我們通過對學生選課,來演示List中對課程增刪改查的方法
/**
* 課程類
* @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)建一個學生類
import java.util.HashSet;
import java.util.Set;
/**
* 學生類
* @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)建一個備選課程的類
/**
* 備選課程類
* @author lenovo
*
*/
public class ListTest {
//用于存放備選課程的List
public List beixuan;
public ListTest(){
this.beixuan = new ArrayList();
}
}
可以使用List中add方法添加課程
/*
* 用來往beixuan里添加備選課程的方法
*/
public void kcAdd(){
//創(chuàng)建一個課程的對象,調(diào)用add方法,添加到備選課程的List中
KeCheng kc = new KeCheng("1","數(shù)據(jù)結(jié)構(gòu)");
beixuan.add(kc);
KeCheng kc2 = new KeCheng("2","C語言");
beixuan.add(0, kc2);
KeCheng[] kcArr = {new KeCheng("3","大學語文"),new KeCheng("4","線性代數(shù)")};
beixuan.addAll(Arrays.asList(kcArr));
KeCheng[] kcArr2 = {new KeCheng("5","藝術(shù)設(shè)計"),new KeCheng("6","計算機基礎(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方法刪除一個課程類型的數(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的用法代碼示例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友繼續(xù)參閱本站:java集合中的list詳解、Java編程接口調(diào)用的作用及代碼分享、java并發(fā)學習之BlockingQueue實現(xiàn)生產(chǎn)者消費者詳解等,有什么問題可以隨時留言,小編會及時回復大家的。感謝朋友們對本站的支持!
相關(guān)文章
如何解決idea的Module:‘:app‘platform‘a(chǎn)ndroid-32‘not found.問題
這篇文章主要介紹了如何解決idea的Module:‘:app‘platform‘a(chǎn)ndroid-32‘not found.問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04
Java 網(wǎng)絡(luò)編程之 TCP 實現(xiàn)簡單的聊天系統(tǒng)
這篇文章主要介紹了Java 網(wǎng)絡(luò)編程之 TCP 實現(xiàn)簡單的聊天系統(tǒng),幫助大家更好的理解和學習Java 網(wǎng)絡(luò)編程,感興趣的朋友可以了解下2020-11-11
Mybatis配置之<environments>配置元素詳解
這篇文章主要介紹了Mybatis配置之<environments>配置元素,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Springboot項目打war包docker包找不到resource下靜態(tài)資源的解決方案
今天小編就為大家分享一篇關(guān)于Springboot項目打war包docker包找不到resource下靜態(tài)資源的解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03
Spring Boot Admin Server管理客戶端過程詳解
這篇文章主要介紹了Spring Boot Admin Server管理客戶端過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03
解決Spring事務(wù)@Transactional多層嵌套失效問題
在使用Spring進行事務(wù)管理時,可能會遇到事務(wù)失效的問題,主要原因包括數(shù)據(jù)庫不支持事務(wù)、方法訪問級別不是public、未被Spring管理的Bean、當前類的方法內(nèi)部調(diào)用以及配置的事務(wù)傳播性不當?shù)?解決事務(wù)失效的方法有使用聲明式事務(wù)處理采用合適的事務(wù)傳播行為2024-11-11

