java list select_Java List集合(四十)

集合的概念

现实生活中:很多事物凑在一起

数学中的集合:具有共同属性的事物的总体

Java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象

集合的作用

- 在类的内部,对数据进行组织

- 简单而快速的搜索大数量的条目

- 有的集合接口提供了一系列排列有序的元素,并且可以在序列之间快速的插入或者删除有关元素

- 有的集合接口提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型

集合与数组的区别

- 数组的长度是固定不可变的,集合长度可变

- 数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象

Java 集合类型分为Collection和Map,它们是 Java 集合的根接口,这两个接口又包含了一些子接口或实现类。

8fb1608ce9c96663355ac59bee537e3c.png

Collection接口、子接口以及实现类

Collection接口

- 是List、Set和Queue接口的父接口

- 定义了可用于操作List、Set和Queue接口的方法 — 增删改查

List接口及其实现类 — ArrayList

- List是元素有序并且可以重复的集合,被称为序列

- List可以精确的控制每个元素的插入位置,或删除某个位置元素

- ArrayList — 数组序列,是List的一个重要实现类

- ArrayList底层是由数组实现的

实现功能 — 模拟学生选课功能

选择课程(往集合中添加课程)

删除所选的某门课程(删除集合中的元素)

查看所选课程

修改所选课程

//课程类

public classCourse {publicString id;publicString name;publicCourse(String id,String name) {this.id =id;this.name =name;

}

}

新增(第1种add方法):

importjava.util.ArrayList;importjava.util.List;public classListTest {//用于存放备选课程的List

publicList coursesToSelect;publicListTest() {this.coursesToSelect = newArrayList();

}//用于往coursesToSelect中添加备选课程

public voidtestAdd() {//创建一个课程对象,并通过调用add方法,添加到备选课程List中

Course cr1 = new Course("1","数据结构");

coursesToSelect.add(cr1);//通过List的get方法把此元素取出来//对象存入集合都变成了object类型,取出时需要类型转换

Course temp = (Course) coursesToSelect.get(0);

System.out.println("添加了课程:"+temp.id+":"+temp.name);}public static voidmain(String[] args) {

ListTest lt= newListTest();

lt.testAdd();

}

}

运行结果:

7bbea92ec365651b7bd16af87f16310d.png

新增(第2种add方法:可以指定元素添加位置):

importjava.util.ArrayList;importjava.util.List;public classListTest {//用于存放备选课程的List

publicList coursesToSelect;publicListTest() {this.coursesToSelect = newArrayList();

}//用于往coursesToSelect中添加备选课程

public voidtestAdd() {

Course cr1 = new Course("1","数据结构");

coursesToSelect.add(cr1);

Course temp = (Course) coursesToSelect.get(0);

System.out.println("添加了课程:"+temp.id+":"+temp.name);

Course cr2= new Course("2","C语言");//指定添加位置为首位0 此时序列变为:0:cr2 | 1:cr1

coursesToSelect.add(0,cr2);

Course temp2= (Course) coursesToSelect.get(0);

System.out.println("添加了课程:"+temp2.id+":"+temp2.name);//以下调用add方法时,传递的位置参数>序列长度 会抛出数组下标越界异常

Course cr3 = new Course("3","test");

coursesToSelect.add(4,cr3);

}public static voidmain(String[] args) {

ListTest lt= newListTest();

lt.testAdd();

}

}

运行结果:

d9888ddba715db99ade2a6e56c8fce9c.png

除了两个add方法,还有两个addAll方法可以实现往List中添加元素的功能

importjava.util.ArrayList;importjava.util.Arrays;importjava.util.List;public classListTest {//用于存放备选课程的List

publicList coursesToSelect;publicListTest() {this.coursesToSelect = newArrayList();

}//用于往coursesToSelect中添加备选课程

public voidtestAdd() {

Course cr1 = new Course("1","数据结构");

coursesToSelect.add(cr1);

Course temp = (Course) coursesToSelect.get(0);

System.out.println("添加了课程:"+temp.id+":"+temp.name);

Course cr2= new Course("2","C语言");//指定添加位置为首位 此时序列变为:0: 2 C语言 | 1:1 数据结构

coursesToSelect.add(0,cr2);

Course temp2= (Course) coursesToSelect.get(0);

System.out.println("添加了课程:"+temp2.id+":"+temp2.name);//以下调用add方法时,传递的位置参数>序列长度 会抛出数组下标越界异常//Course cr3 = new Course("3","test");//coursesToSelect.add(4,cr3);//创建课程数组

Course[] course = {new Course("3","sql"),new Course("4","MySQL")};//第1种addAll方法:通过工具类Arrays里的addAll方法 将course数组转变为list

coursesToSelect.addAll(Arrays.asList(course));

Course temp3= (Course) coursesToSelect.get(2);

Course temp4= (Course) coursesToSelect.get(3);

System.out.println("添加了两门课程:"+temp3.id+":"+temp3.name+";"+temp4.id+":"+temp4.name);

Course[] course2= {new Course("5","java"),new Course("6","python")};//第2种addAll方法:和第2种add方法类似,指定了添加元素位置,这里的添加元素为一个集合

coursesToSelect.addAll(2, Arrays.asList(course2));

Course temp5= (Course) coursesToSelect.get(2);

Course temp6= (Course) coursesToSelect.get(3);

System.out.println("添加了两门课程:"+temp5.id+":"+temp5.name+";"+temp6.id+":"+temp6.name);

}public static voidmain(String[] args) {

ListTest lt= newListTest();

lt.testAdd();

}

}

运行结果:

08da61d1ca687fc1c75b13d65b4b1a8f.png

查询:

- 通过for循环

- 通过迭代器

- 通过for each循环

importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Iterator;importjava.util.List;public classListTest {

publicList coursesToSelect;publicListTest() {this.coursesToSelect = newArrayList();

}

public voidtestAdd() {

Course cr1 = new Course("1","数据结构");

coursesToSelect.add(cr1);

Course temp = (Course) coursesToSelect.get(0);

System.out.println("添加了课程:"+temp.id+":"+temp.name);

Course cr2= new Course("2","C语言");//指定添加位置为首位 此时序列变为:0: 2 C语言 | 1:1 数据结构

coursesToSelect.add(0,cr2);

Course temp2= (Course) coursesToSelect.get(0);

System.out.println("添加了课程:"+temp2.id+":"+temp2.name);//此时序列顺序为:0: 2 C语言| 1: 1 数据结构| 2: 1 数据结构

coursesToSelect.add(cr1);

Course temp0= (Course) coursesToSelect.get(2);

System.out.println("添加了课程:"+temp0.id+":"+temp0.name);//创建课程数组//此时序列顺序为:0: 2 C语言| 1: 1 数据结构| 2: 1 数据结构| 3: 3 sql| 4: 4 MySQL

Course[] course = {new Course("3","sql"),new Course("4","MySQL")};//第1种addAll方法:通过工具类Arrays里的addAll方法 将course数组转变为list

coursesToSelect.addAll(Arrays.asList(course));

Course temp3= (Course) coursesToSelect.get(2);

Course temp4= (Course) coursesToSelect.get(3);

System.out.println("添加了两门课程:"+temp3.id+":"+temp3.name+";"+temp4.id+":"+temp4.name);

Course[] course2= {new Course("5","java"),new Course("6","python")};//第2种addAll方法:和第2种add方法类似,指定了添加元素位置,这里的添加元素为一个集合//此时序列顺序为:0: 2 C语言| 1: 1 数据结构| 2: 5 java| 3: 5 python| 4: 1 数据结构| 5:3 sql| 6: 4 MySQL

coursesToSelect.addAll(2, Arrays.asList(course2));

Course temp5= (Course) coursesToSelect.get(2);

Course temp6= (Course) coursesToSelect.get(3);

System.out.println("添加了两门课程:"+temp5.id+":"+temp5.name+";"+temp6.id+":"+temp6.name);

}//取得List中的元素的方法

public voidtestGet() {//为了依次遍历List中的元素,首先需要取得List的长度

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);

}

}//通过迭代器去遍历List

public void testIterator() { //iterator 迭代器//通过集合的iterator方法,取得迭代器的实例

Iterator it =coursesToSelect.iterator();

System.out.println("有如下课程待选(通过迭代器访问):");while(it.hasNext()) {

Course cr=(Course) it.next();

System.out.println("课程:"+cr.id+":"+cr.name);

}

}//通过for each方法访问集合元素

public voidtestForEach() {

System.out.println("有如下课程待选(通过for each访问)");for(Object obj:coursesToSelect) {

Course cr=(Course) obj;

System.out.println("课程:"+cr.id+":"+cr.name);

}

}public static voidmain(String[] args) {

ListTest lt= newListTest();

lt.testAdd();

lt.testGet();

lt.testIterator();

lt.testForEach();

}

}

修改:

importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Iterator;importjava.util.List;public classListTest {//用于存放备选课程的List

publicList coursesToSelect;publicListTest() {this.coursesToSelect = newArrayList();

}//用于往coursesToSelect中添加备选课程

public voidtestAdd() {//创建一个课程对象,并通过调用add方法,添加到备选课程List中

Course cr1 = new Course("1","数据结构");

coursesToSelect.add(cr1);//通过List的get方法把此元素取出来//对象存入集合都变成了object类型,取出时需要类型转换

Course temp = (Course) coursesToSelect.get(0);

System.out.println("添加了课程:"+temp.id+":"+temp.name);

Course cr2= new Course("2","C语言");//指定添加位置为首位 此时序列变为:0: 2 C语言 | 1:1 数据结构

coursesToSelect.add(0,cr2);

Course temp2= (Course) coursesToSelect.get(0);

System.out.println("添加了课程:"+temp2.id+":"+temp2.name);//此时序列顺序为:0: 2 C语言| 1: 1 数据结构| 2: 1 数据结构

coursesToSelect.add(cr1);

Course temp0= (Course) coursesToSelect.get(2);

System.out.println("添加了课程:"+temp0.id+":"+temp0.name);//创建课程数组//此时序列顺序为:0: 2 C语言| 1: 1 数据结构| 2: 1 数据结构| 3: 3 sql| 4: 4 MySQL

Course[] course = {new Course("3","sql"),new Course("4","MySQL")};//第1种addAll方法:通过工具类Arrays里的addAll方法 将course数组转变为list

coursesToSelect.addAll(Arrays.asList(course));

Course temp3= (Course) coursesToSelect.get(2);

Course temp4= (Course) coursesToSelect.get(3);

System.out.println("添加了两门课程:"+temp3.id+":"+temp3.name+";"+temp4.id+":"+temp4.name);

Course[] course2= {new Course("5","java"),new Course("6","python")};//第2种addAll方法:和第2种add方法类似,指定了添加元素位置,这里的添加元素为一个集合//此时序列顺序为:0: 2 C语言| 1: 1 数据结构| 2: 5 java| 3: 6 python| 4: 1 数据结构| 5:3 sql| 6: 4 MySQL

coursesToSelect.addAll(2, Arrays.asList(course2));

Course temp5= (Course) coursesToSelect.get(2);

Course temp6= (Course) coursesToSelect.get(3);

System.out.println("添加了两门课程:"+temp5.id+":"+temp5.name+";"+temp6.id+":"+temp6.name);

}//取得List中的元素的方法

public voidtestGet() {//为了依次遍历List中的元素,首先需要取得List的长度

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);

}

}//通过迭代器去遍历List

public void testIterator() { //iterator 迭代器//通过集合的iterator方法,取得迭代器的实例

Iterator it =coursesToSelect.iterator();

System.out.println("有如下课程待选(通过迭代器访问):");while(it.hasNext()) {

Course cr=(Course) it.next();

System.out.println("课程:"+cr.id+":"+cr.name);

}

}//通过for each方法访问集合元素

public voidtestForEach() {

System.out.println("有如下课程待选(通过for each访问)");for(Object obj:coursesToSelect) {

Course cr=(Course) obj;

System.out.println("课程:"+cr.id+":"+cr.name);

}

}//修改List中的元素

public voidtestModify() {

coursesToSelect.set(4,new Course("7","jmeter"));

}public static voidmain(String[] args) {

ListTest lt= newListTest();

lt.testAdd();

lt.testGet();

lt.testIterator();

lt.testForEach();

lt.testModify();

lt.testForEach();

}

}

运行结果:

00441ad0985aab1dfb90dbcdce556e16.png

删除:

69d1ca5d5ec717d5429687e7be44f70d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值