1.ArrayList<E>:底层是一个数组,可以调整大小, <E>是一种特殊的数据类型(集合中存储的数据类型),泛型
ArrayList<String> array =new ArrayList<>();
array.add() //此方法可以在集合中添加元素,格式为[ ]
array.add(index:1,element:"") //此方法也可以在指定索引处添加元素,原先位置的数据后移,但是不能添加超过原先索引的数据,即不能跳过某个索引(索引越界)
2.例子:创建一个集合,存储3个学生对象,在控制台遍历该集合
public class ArrayListTest { public static void main(String[] args) { ArrayList<Student> array = new ArrayList<>(); //调用方法 addStudent(array); addStudent(array); addStudent(array); //遍历集合 for (int i = 0; i < array.size(); i++) { Student s = array.get(i); System.out.println(s.getName() + "," + s.getAge()); } } //新建一个方法,实现在集合中添加对象 public static void addStudent(ArrayList<Student> array) { //键盘录入数据 Scanner sc = new Scanner(System.in); System.out.println("请输入学生姓名:"); String name = sc.nextLine(); System.out.println("请输入学生年龄:"); String age = sc.nextLine(); //创建学生对象 Student s = new Student(); s.setName(name); s.setAge(age); //把学生对象添加到集合中 array.add(s); } }
3.学生管理系统项目演示(实现基本的增删改查)
a.创建学生类:
public class Student { //学号 private String sid; //姓名 private String name; //年龄 private String age; //居住地 private String address; public Student() { } public Student(String sid, String name, String age, String address) { this.sid = sid; this.name = name; this.age = age; this.address = address; } 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 String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
b.通过输出语句编写简易主界面
public class StudentManager { public static void main(String[] args) { //创建集合对象,用于存储学生数据 ArrayList <Student> array = new ArrayList <>(); while (true) { 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("请输入你的选择:"); Scanner sc = new Scanner(System.in); String line = sc.nextLine(); switch (line) { case "1": addStudent(array); break; case "2": System.out.println("删除学生"); break; case "3": System.out.println("修改学生"); break; case "4": System.out.println("查询学生"); break; case "5": System.out.println("谢谢使用"); System.exit(0);//JVM退出 } }
c.添加学生
//新建方法用于添加学生
public static void addStudent(ArrayList<Student> array){ //键盘录入学生对象,根据提示信息,提示要输入何种信息 Scanner sc = new Scanner(System.in); System.out.println("请输入学生学号:"); String sid = sc.nextLine(); System.out.println("请输入学生姓名:"); String name = sc.nextLine(); System.out.println("请输入学生年龄:"); String age = sc.nextLine(); System.out.println("请输入学生地址:"); String address = sc.nextLine(); //创建学生对象,把键盘录入的数据通过set方法赋值给学生对象的成员变量 Student s = new Student(); s.setSid(sid); s.setName(name); s.setAge(age); s.setAddress(address); //将学生对象添加到集合 array.add(s); //给出添加成功提示 System.out.println("添加学生成功"); }
d.新建方法用于查询学生
public static void findAllStudent(ArrayList<Student> array) { if (array.size() == 0) { System.out.println("无数据,请先添加后再查询"); return;//使程序不再往下执行 } //显示表头信息 System.out.println("学号\t\t姓名\t\t年龄\t\t居住地"); for (int i = 0; i < array.size(); i++) { Student s = array.get(i); System.out.println(s.getSid() + "\t\t" + s.getName() + "\t\t" + s.getAge() + "岁\t" + s.getAddress()); }
e.删除学生
public static void deleteStudent(ArrayList<Student> array){ Scanner sc = new Scanner(System.in); System.out.println("请输入你要删除的学生学号:"); String sid = sc.nextLine(); for (int i = 0; i < array.size(); i++) { Student s = array.get(i); if(s.getSid().equals(sid)){ array.remove(i); System.out.println("删除成功"); }else { System.out.println("你输入的学号不存在"); } } }
f.修改学生
public static void updateStudent(ArrayList<Student> array){ Scanner sc = new Scanner(System.in); System.out.println("请输入你要修改的学生学号:"); String sid = sc.nextLine(); System.out.println("请输入学生新姓名:"); String name = sc.nextLine(); System.out.println("请输入学生新年龄:"); String age = sc.nextLine(); System.out.println("请输入学生新地址:"); String address = sc.nextLine(); Student s = new Student(); s.setSid(sid); s.setName(name); s.setAge(age); s.setAddress(address); //遍历集合修改学生信息 for (int i = 0; i < array.size(); i++) { Student student = array.get(i); if (student.getSid().equals(sid)){ array.set(i,s); break; } } System.out.println("修改成功"); }