dwcs5怎么做网站深圳外贸seo
文章目录
- 1.ArrayList
- 1.1 ArrayList的构造方法和添加方法
- 1.1 ArrayList的构造方法和添加方法
- 1.2 ArrayList类常用方法【应用】
- 1.3 ArrayList存储字符串并遍历
- 1.4 ArrayList存储学生对象并遍历(存储自定义类)
- 2. 学生管理系统
- 2.1 学生管理系统实现步骤
- 2.2 学生类的定义
- 2.3 测试类的定义
简单体验下ArrayList 后面再系统地做Collection的笔记
1.ArrayList
集合和数组的区别 :
共同点:都是存储数据的容器
不同点:数组的容量是固定的,集合的容量是可变的
1.1 ArrayList的构造方法和添加方法
1.1 ArrayList的构造方法和添加方法
public ArrayList() | 创建一个空的集合对象 |
---|---|
public boolean add(E e) | 将指定的元素追加到此集合的末尾 |
public void add(int index,E element) | 在此集合中的指定位置插入指定的元素 |
ArrayList<E> :
可调整大小的数组实现
<E> : 一种特殊的数据类型,泛型。
怎么用呢 ?
在出现E的地方我们使用引用数据类型替换即可
举例:ArrayList, ArrayList
1.2 ArrayList类常用方法【应用】
**成员方法 : **
public boolean remove(Object o) | 删除指定的元素,返回删除是否成功 |
---|---|
public E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
public E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
public E get(int index) | 返回指定索引处的元素 |
public int size() | 返回集合中的元素的个数 |
示例代码 :
public static void main(String[] args) {ArrayList<String> array = new ArrayList<>();//添加元素array.add("hello");array.add("world");array.add("java");array.add("china");array.add("anhui");//直接输出System.out.println(array);//[hello, world, java, china, anhui]//public boolean remove(Object o):删除指定的元素,返回删除是否成功System.out.println(array.remove("world"));//trueSystem.out.println(array.remove("javaEE"));//falseSystem.out.println(array);//[hello, java, china, anhui]//public E remove(int index):删除指定索引处的元素,返回被删除的元素System.out.println(array.remove(0));//helloSystem.out.println(array);//[java, china, anhui]//public E set(int index,E element):修改指定索引处的元素,返回被修改的元素System.out.println(array.set(2,"whuhan"));//anhuiSystem.out.println(array);//[java, china, whuhan]// System.out.println(array.set(3,"sicuan"));//IndexOutOfBoundsException//public E get(int index):返回指定索引处的元素System.out.println(array.get(0));//javaSystem.out.println(array.get(1));//chinaSystem.out.println(array.get(2));//whuhan
// System.out.println(array.get(3));//IndexOutOfBoundsException//public int size():返回集合中的元素的个数System.out.println(array.size());//3}
1.3 ArrayList存储字符串并遍历
案例需求 :
创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合
实现步骤 :
1:创建集合对象2:往集合中添加字符串对象3:遍历集合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现4:遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现5:遍历集合的通用格式
代码实现 :
public static void main(String[] args) {ArrayList<String> array = new ArrayList<>();array.add("月清疏");array.add("修吾");array.add("桑游");//查API add返回值boolean 不可连续 array.add("桑游").add("白沫晴"); 报错array.add("白沫晴");System.out.println(array.size());for(int i=0;i<array.size();i++){String s=array.get(i);System.out.println(s);}System.out.println("---------------------------");for (String s : array) {System.out.println(s);}}
1.4 ArrayList存储学生对象并遍历(存储自定义类)
案例需求 :
创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
**实现步骤 : **
1:定义学生类
2:创建集合对象
3:创建学生对象
4:添加学生对象到集合中
5:遍历集合,采用通用遍历格式实现
代码实现 :
package cn.whu.day09.collection;import java.util.ArrayList;public class Array03Student {public static void main(String[] args) {ArrayList<Student> arrayList = new ArrayList<>();Student s1 = new Student("张三", 17);Student s2 = new Student("李四", 18);Student s3 = new Student("王五", 19);arrayList.add(s1);arrayList.add(s2);arrayList.add(s3);for (int i = 0; i < arrayList.size(); i++) {Student s=arrayList.get(i);System.out.println(s.getAge()+" "+s.getName());}System.out.println("-----------------------------------");for (Student s : arrayList) {System.out.println(s.getAge()+" "+s.getName());}}
}class Student{private Integer age;private String name;public Student(String name,Integer age ) {this.age = age;this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}
2. 学生管理系统
2.1 学生管理系统实现步骤
-
案例需求
针对目前我们的所学内容,完成一个综合案例:学生管理系统!该系统主要功能如下:
添加学生:通过键盘录入学生信息,添加到集合中
删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除
修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改
查看学生:将集合中的学生对象信息进行展示
退出系统:结束程序
-
实现步骤
-
定义学生类,包含以下成员变量
学生类: Student成员变量:
学号:sid
姓名:name
年龄:age
生日:birthday
构造方法:
无参构造
带四个参数的构造成员方法:
每个成员变量对应给出get/set方法
-
学生管理系统主界面的搭建步骤
2.1 用输出语句完成主界面的编写
2.2 用Scanner实现键盘录入数据
2.3 用switch语句完成操作的选择
2.4 用循环完成再次回到主界面
-
学生管理系统的添加学生功能实现步骤
3.1 用键盘录入选择添加学生
3.2 定义一个方法,用于添加学生
显示提示信息,提示要输入何种信息
键盘录入学生对象所需要的数据
创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
将学生对象添加到集合中(保存)
给出添加成功提示
3.3 调用方法
-
学生管理系统的查看学生功能实现步骤
4.1 用键盘录入选择查看所有学生信息
4.2 定义一个方法,用于查看学生信息
显示表头信息
将集合中数据取出按照对应格式显示学生信息,年龄显示补充“岁”
4.3 调用方法
-
学生管理系统的删除学生功能实现步骤
5.1 用键盘录入选择删除学生信息
5.2 定义一个方法,用于删除学生信息
显示提示信息
键盘录入要删除的学生学号
调用getIndex方法,查找该学号在集合的索引
如果索引为-1,提示信息不存在
如果索引不是-1,调用remove方法删除并提示删除成功
5.3 调用方法
-
学生管理系统的修改学生功能实现步骤
6.1 用键盘录入选择修改学生信息
6.2 定义一个方法,用于修改学生信息
显示提示信息
键盘录入要修改的学生学号
调用getIndex方法,查找该学号在集合的索引
如果索引为-1,提示信息不存在
如果索引不是-1,键盘录入要修改的学生信息
集合修改对应的学生信息
给出修改成功提示
6.3 调用方法
-
退出系统
使用System.exit(0);退出JVM
-
2.2 学生类的定义
package cn.whu.day09.studentManager;public class Student {private String sid;private String name;private Integer age;private String birthday;public Student() { }public Student(String sid, String name, Integer age, String birthday) {this.sid = sid;this.name = name;this.age = age;this.birthday = birthday;}public String getSid() {return sid;}public void setSid(String sid) {this.sid = sid;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getBirthday() {return birthday;}public void setBirthday(String birthday) {this.birthday = birthday;}@Overridepublic String toString() {return sid +" \t " + name + " \t " + age +" \t " + birthday + " \t ";}
}
2.3 测试类的定义
package cn.whu.day09.studentManager;import org.omg.CORBA.INTERNAL;import java.util.ArrayList;
import java.util.Scanner;public class StudentManager {//学生"数据库" 容器public static ArrayList<Student> stuList = new ArrayList<Student>();//给一些初始数据吧 方便测试static {stuList.add(new Student("101","管理1",18,"1998-01-01"));stuList.add(new Student("102","管理2",19,"1999-01-01"));}public static void main(String[] args) {Scanner sc = new Scanner(System.in);lo:while(true){//1. 搭建主界面System.out.println("---------------欢迎来到学生成绩管理系统----------------");System.out.println("1 添加学生");System.out.println("2 删除学生");System.out.println("3 修改学生");System.out.println("4 查看学生");System.out.println("5 退出");System.out.println("请输入您的选择:");String choice = sc.next();//用String的好处 任何非法输入 都直接default处理switch (choice){case "1"://System.out.println("添加学生");addStudent();break;case "2"://System.out.println("删除学生");deleteStudent();break;case "3"://System.out.println("修改学生");updateStudent();break;case "4"://System.out.println("查看学生");queryStudents();break;case "5":System.out.println("退出");break lo; //直接跳出外层循环 从而退出整个系统 方便default:System.out.println("您的输入有误");break;}//switch}//while}//main//添加学生public static void addStudent(){Scanner sc = new Scanner(System.in);//注意学号不能重复String sid,name,birthday;Integer age;//录入while (true){System.out.println("请输入学号:");sid=sc.next();if(hasSid(sid)){System.out.println("该学号已经存在");}else{break;}}System.out.println("请输入姓名:");name=sc.next();System.out.println("请输入年龄:");age=sc.nextInt();System.out.println("请输入生日:");birthday=sc.next();//封装数据并录入stuList.add(new Student(sid,name,age,birthday));System.out.println("添加成功!");}//容器里是否已有该idpublic static boolean hasSid(String sid){for (Student stu : stuList) {if(stu.getSid().equals(sid)) return true;}return false;}//查看学生public static void queryStudents(){System.out.println("学号 \t 姓名 \t 年龄 \t 生日");for (Student stu : stuList) {System.out.println(stu);}}//修改学生public static void updateStudent( ){Scanner sc = new Scanner(System.in);System.out.println("请输入你要修改的学生学号:");String sid = sc.next();Integer idx = getIndexBySid(sid);if(idx==-1){System.out.println("查无此人~");}else{String name,birthday;Integer age;System.out.println("请输入要修改的姓名:");name=sc.next();System.out.println("请输入要修改的年龄:");age=sc.nextInt();System.out.println("请输入要修改的生日:");birthday=sc.next();Student newStu = new Student(sid, name, age, birthday);stuList.set(idx,newStu);//就为了练习这个方法System.out.println("修改成功!");}}//还是用一个sid查地址的方法吧 好多了public static Integer getIndexBySid(String sid){for (int i = 0; i < stuList.size(); i++) {if(stuList.get(i).getSid().equals(sid)){return i;}}return -1;}public static void deleteStudent(){Scanner sc = new Scanner(System.in);System.out.println("请输入要删除学生的学号:");String sid = sc.next();int idx = getIndexBySid(sid);if(idx==-1){//现在发现这个方法设计的是真滴好System.out.println("删除失败,查无此人");}else {stuList.remove(idx);//多美啊System.out.println("删除成功!");}}
}