版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.黑马程序员JavaEE基础班新课程day09:Java集合前情回顾:【*中心】JavaEE基础班新课程day01:java概述【*中心】JavaEE基础班新课程day02:java基础知识【*中心】JavaEE基础班新课程day03:选择和循环【*中心】JavaEE基础班新课程day04:随机数和数组【*中心】JavaEE基础班新课程day05:方法概述【*中心】JavaEE基础班新课程day06:Eclipse断点调试【*中心】JavaEE基础班新课程day07:面向对象【*中心】JavaEE基础班新课程day08:常用Api 今日内容介绍对象数组集合类之ArrayList学生管理系统案例
2、一、对象数组a)对象数组概述 A:基本类型的数组:存储的元素为基本类型int arr=1,2,3,4 B:对象数组:存储的元素为引用类型 Studentstus=new Student3; Student代表一个自定义类 Stus数组中stus0,stus1,stus2的元素数据类型为Student, 都可以指向一个Student对象b)对象数组案例:创建一个学生数组,存储三个学生对象并遍历 i.案例代码一:Java纯文本查看复制代码"010203040506070809101112131415161718192021222324252627282930313233343536373
3、839404142434445464748495051525354555657585960616263646566package.itheima;/* * 自动生成构造方法: * 代码区域右键 - Source - Generate Constructors from Superclass. 无参构造方
4、法 * 代码区域右键 - Source - Generate Constructor using Fields. 带参构造方法 * 自动生成get*x()/set*x(): *
5、; 代码区域右键 - Source - Generate Getters and Setters. */public class Student private String name; private int age;
6、 public Student() public Student(String name, int age) /有参构造,给成员变量赋
7、值 = name; this.age = age;
8、60; public String getName() return name; public void setName(String name)
9、 = name; public int getAge()
10、; return age; public void setAge(int age) this.age = age;
11、; package .itheima;/* * 创建一个学生数组,存储三个学生对象并遍历 * * 分析: * A:定义学生类 * B:创建学生数组
12、0;* C:创建学生对象 * D:把学生对象作为元素赋值给学生数组 *
13、60; E:遍历学生数组 */publicclassStudentDemo publicstaticvoidmain(String args) /创建学生数组
14、 Student students = newStudent3; /创建学生对象
15、0; Student s1 = newStudent("曹操",40); Student s2 = newStudent("X备",35);
16、160; Student s3 = newStudent("孙权",30); &
17、#160;/把学生对象作为元素赋值给学生数组 students0 = s1; students1 = s2;
18、160; students2 = s3; /遍历学生数组
19、0; for(intx=0; x<students.length; x+) Student s = studentsx;
20、0; /System.out.println(s); System.out.println(s.getName(
21、)+"-"+s.getAge(); c)对象数组的内存图二、集合之ArrayList集合只能用来存储引用数据类型A:我们学习的是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来体现的。为了方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想对多个对象进行存储,就不能是一
22、个基本的变量,而应该是一个容器类型的变量。B:到目前为止,我们学习过了哪些容器类型的数据呢.StringBuilder,数组。StringBuilder的结果只能是一个字符串类型,不一定满足我们的需求。所以,我们目前只能选择数组了,也就是我们前面学习过的对象数组。但是,数组的长度是固定的, 如果有时候元素的个数不确定的,我们无法定义出数组的长度,这个时候,java就提供了集合类供我们使用。a)ArrayList集合i. ArrayList添加新元素1.案例代码二:Java纯文本查看复制代码"01020304050607080910111213141516171819202122232
23、4252627282930313233343536373839404142package.itheima_01;importjava.util.ArrayList;/* * 为什么会出现集合类: * 我们学习的是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来体现的。 *
24、0; 为了方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想对多个对象进行存储, * 就不能是一个基本的变量,而应该是一个容器类型的变量。 *
25、60; 到目前为止,我们学习过了哪些容器类型的数据呢.StringBuilder,数组。 * StringBuilder的结果只能是一个字符串类型,不一定满足我们的需求。 *
26、; 所以,我们目前只能选择数组了,也就是我们前面学习过的对象数组。 * 但是,数组的长度是固定的,适应不了变化的需求,那么,我们该如何选择呢" * 这个时候,ja
27、va就提供了集合类供我们使用。 * * 集合类的特点: * 长度可变。 * ArrayList<E>: * 大小可变数组的实现 *
28、;* <E>:是一种特殊的数据类型,泛型。 * 怎么用呢" *
29、160; 在出现E的地方我们使用引用数据类型替换即可 * 举例:ArrayList<String>,ArrayList&l
30、t;Student> * 构造方法: * ArrayList() * 添加元素: * public boolean add(E e):添加元素 * &
31、#160; public void add(int index,E element):在指定的索引处添加一个元素 */ publicclassArrayListDemo &
32、#160; publicstaticvoidmain(String args) /创建集合对象 ArrayList<String> array = new ArrayList<St
33、ring>(); /add(E e):添加元素
34、; array.add("hello"); array.add("world"); array.add("java");
35、60; /add(int index,E element):在指定的索引处添加一个元素 /array.add(1, "android"); &
36、#160; System.out.println("array:"+array); i i.ArrayList删改查方法A:获取元素public E get(int index):返回指定索引处的元素B:集合长度publicint size():返回集合中的元素的个数C:删除元素 publicboolean remove(Object o):删除指定的元素,返回删除是否成功
37、public E remove(int index):删除指定索引处的元素,返回被删除的元素D:修改元素public E set(int index,E element):修改指定索引处的元素,返回被修改的元素1.案例代码三:Java纯文本查看复制代码"010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445package.itheima_01;importjava.util.ArrayList;/* * 获取元素 *
38、 public E get(int index):返回指定索引处的元素 * 集合长度 * public int size():返回集合中的元素的个数 * 删除元素 *
39、; public boolean remove(Object o):删除指定的元素,返回删除是否成功 * public E remove(int index):删除指定索引处的元素,返回被删除的元素 * 修改元素 *
40、60; public E set(int index,E element):修改指定索引处的元素,返回被修改的元素 */publicclassArrayListDemo2 publicstaticvoidmain(String args) &
41、#160; /创建集合对象 ArrayList<String> array = newArrayList<String>();
42、; /添加元素 array.add("hello"); &
43、#160; array.add("world"); array.add("java");
44、0; /public E get(int index):返回指定索引处的元素 /System.out.println("get:"+array.get(0);
45、60; /System.out.println("get:"+array.get(1); /System.out.println("get:"+array.get(2);
46、; /public int size():返回集合中的元素的个数 /Syst
47、em.out.println("size:"+array.size(); /public boolean remove(Object o):删除指定的元素,返回删除是否成功 &
48、#160; /System.out.println("remove:"+array.remove("world");/true /System.out.println("remove:"
49、;+array.remove("world");/false /public E remove(int index):删除指定索引处的元素,返回被删除的元素
50、60; /System.out.println("remove:"+array.remove(0); &
51、#160; /public E set(int index,E element):修改指定索引处的元素,返回被修改的元素 System.out.println("set:"+array.set(1, "android");
52、60; /输出 System.out.println("array:"+array);
53、60; iii. ArrayList遍历集合的遍历思想和数组的遍历思想相同循环遍历容器,依次取出里面的元素即可1.案例代码四:Java纯文本查看复制代码"0102030405060708091011121314151617181920212223242526272829303132333435363738394041package.itheima_01;importjava.util.ArrayList;/* * ArrayList集合的遍历 *
54、 通过size()和get()配合实现的 */publicclassArrayListDemo3 publicstaticvoidmain(String args)
55、160; /创建集合对象 ArrayList<String> array = newArrayList<String>();
56、 /添加元素 array.add("hello"); ar
57、ray.add("world"); array.add("java");
58、; /获取元素 /原始做法 System.out.println(array.get(0);
59、; System.out.println(array.get(1); System.out.println(array.get(2); &
60、#160; System.out.println("-"); for(intx=0; x<3; x+)
61、60; System.out.println(array.get(x); &
62、#160; System.out.println("-"); /如何知道集合中元
63、素的个数呢"size() for(intx=0; x<array.size(); x+) System.o
64、ut.println(array.get(x); System.out.println("-");
65、160; /最标准的用法 for(intx=0; x<array.size(); x+)
66、160; String s = array.get(x); Sy
67、stem.out.println(s); iv. ArrayList练习之键盘录入数据存储并遍历创建一个Student类包含*和年龄属性创建一个ArrayList集合向集合中添加三个Student对象Student对象中*和年龄的数据均来自与键盘录入最终遍历这个集合,取出Student对象以及里面属性的值1.案例
68、代码五:Java纯文本查看复制代码"010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899package.itheima_03; publicclassStudent
69、; privateString name; privateString age; publicStudent() publicStudent(String name, String ag
70、e) = name; this.age = age; &
71、#160; publicString getName() returnname; publicvoidsetName(String name)
72、160; = name; publicString getAge()
73、; returnage; publicvoidsetAge(String age) this.age = age;
74、; package.itheima_03;importjava.util.ArrayList;importjava.util.Scanner;/* * 创建一个集合,存储学生对象,学生对象的数据来自于键盘录入,最后,遍历集合 * * 注意:为了方便使用,我把学生类中的所有成员定义为String类型 * * 分析: *
75、160; A:定义学生类 * B:创建集合对象 * &
76、#160; C:键盘录入数据,创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 * D:把学生对象作为元素存储到集合中 * E:遍历集合 * *
77、/public class StudentDemo public static void main(String args) /创建集合对象
78、160; ArrayList<Student> array = new ArrayList<Student>(); /*
79、160; /键盘录入数据,创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 Scanner sc = new Scanner(System.in);
80、60; System.out.println("请输入学生*:"); String name = sc.nextLine(); System.
81、out.println("请输入学生年龄:"); String age = sc.nextLine();
82、; Student s = new Student(); s.setName(name); s.setAge(ag
83、e); /把学生对象作为元素存储到集合中
84、; array.add(s); */
85、160; /为了提高代码的复用性,我把键盘录入数据给学生对象,并存储到集合中的动作用一个方法来实现 /调用方法 &
86、#160; addStudent(array); addStudent(array); addStud
87、ent(array); /遍历集合
88、160; for(int x=0; x<array.size(); x+) Student s = array.get(x); &
89、#160; System.out.println(s.getName()+"-"+s.getAge();
90、; /* * 两个明确: * 返回值类型:void
91、160; * 参数列表:ArrayList<Student> array */ publicstaticvoidaddStud
92、ent(ArrayList<Student> array) /键盘录入数据,创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 Scanner sc = newScanner(System.in);
93、160; System.out.println("请输入学生*:"); String name = sc.nextLine();
94、 System.out.println("请输入学生年龄:"); String age = sc.nextLine();
95、0; Student s = newStudent(); s.setName(name);
96、; s.setAge(age); /把学生对象作为元素存储到集合中
97、; array.add(s); 三、学生管理系统 利用集合完成对学生的增删改查四个功能。i.创建学生类:Java纯文本查看复制代码"010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555
98、65758package.itheima;/* * 这是我的学生类 */publicclassStudent /学号 privateString id; /* privateString name;
99、160; /年龄 privateString age; /居住地 privateString address;
100、60; publicStudent() publicStudent(String id, String name, Str
101、ing age, String address) this.id = id; = name;
102、; this.age = age; this.address = address; publicString getId()
103、 returnid; publicvoidsetId(String id)
104、 this.id = id; publicString getName() returnname; &
105、#160; publicvoidsetName(String name) = name; &
106、#160; publicString getAge() returnage; publicvoidsetAge(String age)
107、 this.age = age; publicString getAddress() &
108、#160; returnaddress; publicvoidsetAddress(String address) this.address = address;
109、; ii. 学生管理系统界面实现:Java纯文本查看复制代码"0102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859package.itheima;importjava.util.ArrayList;importjava.uti
110、l.Scanner; /* * 这是我的学生管理系统的主类 * * 步骤如下: * A:定义学生类 * B:学生管理系统的主界面的代码编写 * C:学生管理系统的查看所有学生的代码编写 * D:学生管理系统的添加学生的代码编写 * E:学生管理系统的删除学生的代码编写 * F:学生管理系统的修改学生的代码编写 */publicclassStudentManagerTest publicst
111、aticvoidmain(String args) / 创建集合对象,用于存储学生数据 ArrayList<Student> array = newArrayList<Student>();
112、160; / 为了让程序能够回到这里来,我们使用循环 while(true)
113、; / 这是学生管理系统的主界面 System.out.println("-欢迎来到学生管理系统-");
114、 System.out.println("1 查看所有学生"); &
115、#160;System.out.println("2 添加学生"); System.out.println("3 删除学生"); &
116、#160; System.out.println("4 修改学生"); System.out.println("5 退出");
117、60; System.out.println("请输入你的选择:");
118、0; / 创建键盘录入对象 Scanner sc = newScanner(System.in); &
119、#160; String choiceString = sc.nextLine(); / 用switch语句实现选择
120、0; switch(choiceString) case"1": &
121、#160; / 查看所有学生
122、; break; case"2":
123、; / 添加学生
124、; break; case"3":
125、; / 删除学生 break;
126、; case"4":
127、; / 修改学生 break;
128、; case"5":
129、;/ 退出 / System.out.println("谢谢你的使用");
130、160; / break; default:
131、0; System.out.println("谢谢你的使用"); &
132、#160; System.exit(0); / JVM退出
133、160; break;
134、160; iii. 学生管理系统之查询所有学生功能Java纯文本查看复制代码"010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475package.itheima.test;importjava.util.ArrayList;importjava.util.Scanner; /* * 这是
135、我的学生管理系统的主类 * * 步骤如下: * A:定义学生类 * B:学生管理系统的主界面的代码编写 * C:学生管理系统的查看所有学生的代码编写 * D:学生管理系统的添加学生的代码编写 * E:学生管理系统的删除学生的代码编写 * F:学生管理系统的修改学生的代码编写 */publicclassStudentManagerTest publicstaticvoidmain(String args)
136、160; /创建集合对象,用于存储学生数据 ArrayList<Student> array = newArrayList<Student>(); &
137、#160; /为了让程序能够回到这里来,我们使用循环 while(true)
138、; /这是学生管理系统的主界面 Syst
139、em.out.println("-欢迎来到学生管理系统-"); System.out.println("1 查看所有学生");
140、160; System.out.println("2 添加学生"); System.out.println("3 删除学生");
141、160; System.out.println("4 修改学生");
142、; System.out.println("5 退出"); System.out.println("请输入你的选择:");
143、; /创建键盘录入对象 Scanner sc = newScanner(System.in);
144、60; String choiceString = sc.nextLine(); /用s
145、witch语句实现选择 switch(choiceString)
146、0; case"1": /查看所有学生
147、60; findAllStudent(array);
148、; break; case"2":
149、; /添加学生
150、break; case"3":
151、 /删除学生 break; &
152、#160; case"4": /修改学生 break;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于因子分析的多元线性回归:股价预测的精准建模与实证研究
- 2027届甘肃省酒泉市肃州中学数学八上期末质量检测模拟试题含解析
- 2026届南京市白下区三下数学期末达标检测试题含解析
- 2026-2027学年人教版中考物理备考全程模拟卷(带答案与解析)
- 《常见的系统及组成》课时练习及答案-2026-2027学年湘科版(新版)小学信息科技六年级上册
- 2026年护士模拟试卷型及参考答案
- 2026年国家网络安全法解读与试题及答案
- 2026年湖北省宜都市高三数学下册期末考试模拟试卷及答案【必刷】
- 2026年山西省孝义市高三数学下册期末考试模拟测试卷及参考答案(模拟题)
- 2026年山东省昌邑市高三数学下册期末考试模拟检测卷附参考答案【考试直接用】
- 《智能网联汽车规划与决策技术》课件 项目4 常见的行为决策方法
- 2026年智慧海洋产业园区规划:功能布局与产业协同设计
- 中华传统文化教学课件(共8章)第三章 感受传统文学之美
- 个人暗股合同协议书
- 基础机械结构知识培训课件
- 秋季加油站安全培训课件
- 2025-2026学年人美版(2024)小学美术三年级上册《果篮传情谊》教学设计
- 认知障碍患者护理课件
- 4.7 京剧传统戏(看大王在帐中和衣睡稳) 教学设计-2023-2024学年高中音乐人音版(2019)必修 音乐鉴赏
- 血透病人皮肤瘙痒的护理
- 2025年大学生微电子与集成电路考试试题及答案
评论
0/150
提交评论