java集合中list的用法代码示例
作者:老潘的博客 时间:2023-04-11 23:29:17
List接口是Collection接口的子接口,List有一个重要的实现类--ArrayList类,List中的元素是有序排列的而且可重复,所以被称为是序列。
List可以精确的控制每个元素的插入位置,或删除某个位置元素,它的实现类ArrayList底层是由数组实现的。
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;
}
}
创建一个学生类
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();
}
}
创建一个备选课程的类
/**
* 备选课程类
* @author lenovo
*
*/
public class ListTest {
//用于存放备选课程的List
public List beixuan;
public ListTest(){
this.beixuan = new ArrayList();
}
}
可以使用List中add方法添加课程
/*
* 用来往beixuan里添加备选课程的方法
*/
public void kcAdd(){
//创建一个课程的对象,调用add方法,添加到备选课程的List中
KeCheng kc = new KeCheng("1","数据结构");
beixuan.add(kc);
KeCheng kc2 = new KeCheng("2","C语言");
beixuan.add(0, kc2);
KeCheng[] kcArr = {new KeCheng("3","大学语文"),new KeCheng("4","线性代数")};
beixuan.addAll(Arrays.asList(kcArr));
KeCheng[] kcArr2 = {new KeCheng("5","艺术设计"),new KeCheng("6","计算机基础")};
beixuan.addAll(2, Arrays.asList(kcArr2));
}
使用get方法取出指定位置上的内容,并用for循环遍历出课程的内容
/*
* 使用for循环遍历课程的方法
*/
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的内容,除了使用for循环外,还可以使用迭代器、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方法删除一个课程类型的数组
/*
* 使用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();
}
来源:https://www.cnblogs.com/jpwz/p/5672896.html
标签:java,list用法
0
投稿
猜你喜欢
详细分析Java内存模型
2022-01-31 09:37:05
c#中的常用ToString()方法总结
2023-01-13 01:18:30
android studio数据存储建立SQLite数据库实现增删查改
2023-11-29 17:11:42
Android编程出现Button点击事件无效的解决方法示例
2023-01-22 09:30:41
java中的Object类的toSpring()方法
2022-08-30 12:36:03
javaweb登录验证码的实现方法
2021-09-12 05:00:08
c#编写的番茄钟倒计时器代码
2023-02-23 12:21:50
C#使用默认浏览器打开网页的方法
2022-02-16 10:39:34
Spring Security自定义认证逻辑实例详解
2023-02-28 19:19:18
Android编程实现仿优酷旋转菜单效果(附demo源码)
2022-03-06 11:25:32
Spring AOP对嵌套方法不起作用的解决
2022-01-08 16:55:03
C#中ManualResetEvent实现线程的暂停与恢复
2021-06-20 14:59:24
Swagger2匹配多个controller代码实例
2022-07-31 03:42:24
Android Fragment动态创建详解及示例代码
2023-04-26 00:25:33
简单谈谈JVM、JRE和JDK的区别与联系
2023-04-20 17:14:51
java内存模型jvm虚拟机简要分析
2022-09-08 09:29:34
C#模拟window操作鼠标的方法
2021-07-17 01:50:22
C++选择排序算法实例
2021-10-27 21:43:33
Android输入框控件ClearEditText实现清除功能
2022-12-16 06:59:48
Android XML設置屏幕方向(android:screenOrientation)详解
2021-09-08 09:46:35