一、 基础案例
1. 训练案例1
1.1. 训练描述:【讲义1.3—ArrayList集合类的构造方法和成员方法】
一、 请按以下要求编写代码:
- 定义一个只能存储字符串的集合对象;
- 向集合内添加以下数据:
“孙悟空”
“猪八戒”
“沙和尚”
“铁扇公主” - 不用遍历,直接打印集合;
- 获取第4个元素(注意,是–第4个元素,它的索引是?)
- 打印一下集合大小;
- 删除元素“铁扇公主”
- 删除第3个元素(注意:是–第3个元素)
- 将元素“猪八戒”改为“猪悟能”
- 再次打印集合;
1.2. 操作步骤描述
略
2. 训练案例2
2.1. 训练描述:【讲义1.4—ArrayList案例】
一、 请按以下要求编写代码:
- 定义Student类,包含以下属性:
学号、姓名、身高 - 定义MainApp类,包含main()方法;
- 在main()方法中,创建一个可以存储Student对象的集合对象;
- 创建以下几个Student对象:
学号 姓名 身高
it001 黄渤 1.72
it002 孙红雷 1.78
it003 章子怡 1.64
it004 杨颖 1.68 - 将上面几个对象添加到集合中
- 遍历集合打印每个对象的属性值;
- 获取并打印集合大小;
- 获取第3个学员对象,并打印其属性值;
- 移除掉第4个学员对象;
- 再次获取并打印集合大小;
- 将第一个对象替换为以下对象:
it005 撒贝宁 1.67 - 遍历集合,打印出身高在1.70以上的学员信息;
- 遍历集合,打印出“孙”姓的学员信息;
2.2. 操作步骤描述
略
3. 训练案例3
3.1. 训练描述:【综合:Scanner类、方法、ArrayList类综合】
一、 需求说明:程序启动后可以接收三个学员信息,然后可以打印所有学员信息,并找出身高最高的学员,并打印他们的详细信息
3.2. 操作步骤描述
- 定义MainApp类,包含main()方法;
- 在main()方法中,创建一个可以存储Student对象的集合对象;
- 从控制台接收以下几个Student对象:
学号 姓名 性别 年龄 身高
it001 黄渤 男 20 1.72
it002 孙红雷 男 22 1.78
it003 章子怡 女 18 1.64
将每个对象添加到集合中(集合中学员学号唯一); - 在MainApp中创建方法,可以打印所有学员信息:
public static void printAll(ArrayListstuList){} - 在MainApp中创建方法,可以找出身高最高的学员,并打印:
public static void findMaxHeight(ArrayListstuList){} - 在main()方法中,分别调用三个方法:打印所有学员,找出身高最高的学员;
二、 扩展案例
1. 训练案例1
1.1. 训练描述:
分析以下需求,并用代码实现
1.按照以下描述完成类的定义。
学生类
属性:
姓名name
年龄age
成绩score
行为:
吃饭eat()
stuty(String content)(content:表示学习的内容)
2.定义学生工具StudentsTool,有四个方法,描述如下
public void listStudents(Student[] arr):遍历打印学生信息
public int getMaxScore(Student[] arr):获取学生成绩的最高分
public Student getMaxStudent(Student[] arr):获取成绩最高的学员
public int getAverageScore(Student[] arr):获取学生成绩的平均值
public int getCount(Student[] arr):获取不及格的学员数量
3.定义测试类TestStudentTool,在main方法中首先创建长度为5的Student数组并初始化数据,再创建StudentsTool类的对象,并调用以上方法
1.2. 操作步骤描述
略
2. 训练案例2
2.1. 训练描述:
分析以下需求,并用代码实现
1.定义Student类
属性:
姓名:String name
年龄:int age
成绩:int score
行为:
空参构造方法
有参构造方法
set和get方法
toString方法
2.定义测试类,进行测试
(1)创建10个学生对象存入ArrayList集合中
(2)打印最高分的学员姓名、年龄、成绩 [要求封装1个方法 参数是集合对象 返回值类型为Student]
(3)打印10个学生的总成绩和平均分 [要求封装两个方法完成]
(4)打印不及格的学员信息及数量 [要求封装一个方法完成]
2.2. 操作步骤描述
略
3. 训练案例3
3.1. 训练描述:
分析以下需求,并用代码实现
1.定义ArrayList集合,存入多个字符串
如:“ab1” “123ad” “bca” “dadfadf” “dddaaa” “你好啊” “我来啦” “别跑啊”
2.遍历集合,删除长度大于5的字符串,打印删除后的集合对象
3.基于上一步,删除集合中元素包含0-9数字的字符串(只要字符串中包含0-9中的任意一个数字就需要删除此整个字符串)
3.2. 操作步骤描述
略
4. 训练案例4
4.1. 训练描述:
分析以下需求,并用代码实现
定义MyArrays类,该类中有以下方法,方法描述如下:
1.public static void reverse(ArrayList list);
参数ArrayList list:要进行操作的集合对象
要求:对list集合对象中的元素进行反转(第一个和最后一个交换,第二个和倒数第二个交换,第三个和倒数第三个交换…)
2.public static Integer max(ArrayList list);
参数ArrayList list:要进行操作的集合对象
要求:求出list集合对象中的最大值并返回
3.public static Integer min(ArrayList list);
参数ArrayList list:要进行操作的集合对象
要求:求出list集合对象中的最小值并返回
4.public static int indexOf(ArrayList list,Integer i);
参数ArrayList list:要进行操作的集合对象
参数Integer i:需要在集合中查找的元素
要求:求出元素i在list集合中第一次出现的索引,如果没有返回-1
5.public static void replaceAll(ArrayList list,Integer oldValue,Integer newValue);
参数ArrayList list:要进行操作的集合对象
参数Integer oldValue:需要被替换掉的原值
参数Integer newValue:替换后的新值
要求:将list集合中的所有值为oldValue的元素替换为newValue
4.2. 操作步骤描述
略