JAVA集合ArrayList

    技术2025-11-15  26

    集合类

    特点:与数组容量不变不同,他是容量可以动态发生改变的一种数据结构 ArrayList:E代表泛型,表示集合中存储的数据类型的一种限制。是一种可调整大小的数组实现

    构造方法与添加元素方法

    import java.util.ArrayList; public class StudentDemo { public static void main(String[] args) { //常用构造方法 ArrayList<String> arr = new ArrayList<>(); System.out.println("arr: "+arr); //元素添加方法 arr.add("dd"); arr.add("wworld"); arr.add("java"); //指定位置添加元素,插入,后面元素右移 arr.add(1,"qww"); System.out.println(arr); //注意下标越界异常的问题——IndexOutOfBoundsException arr.add(5,"qww"); System.out.println(arr); } }

    字符串遍历

    public static void main(String[] args) { ArrayList<String> array = new ArrayList<>(); array.add("aa"); array.add("bb"); array.add("cc"); for (int i = 0; i <array.size() ; i++) { System.out.println(array.get(i)); } }

    常用方法总结:

    创建对象: ArrayList<String> arr = new ArrayList<>(); 追加元素:arr.add("dd"); 指定位置插入元素:arr.add(1,"qww"); 获取集合元素个数:array.size(); 获取指定位置的元素:array.get(i); 删除指定元素:remoe(Object o) 删除指定索引元素,返回被删元素:remove(int index) 修改指定索引处的元素,返回被修改的元素:set(int index, E element) public static void main(String[] args) { //常用构造方法 ArrayList<String> arr = new ArrayList<>(); arr.add("aa"); arr.add("bb"); arr.add("cc"); System.out.println(arr); // System.out.println(arr.remove("aa")); //System.out.println(arr.remove(2)); //System.out.println(arr.set(3,"java")); System.out.println(arr.get(2)); System.out.println(arr.size()); System.out.println(arr); }

    综合案例: 集合中存储学生对象,遍历集合

    public static void main(String[] args) { ArrayList<Student> stu = new ArrayList<>(); Student xm1 = new Student("小明1", 10); Student xm2 = new Student("小明2", 11); Student xm3 = new Student("小明3", 12); stu.add(xm1); stu.add(xm2); stu.add(xm3); for (int i = 0; i < stu.size(); i++) { System.out.println(stu.get(i)); } } package com.itheima_09; public class Student { private String name; private int age; public Student(){ } public Student(String name,int age){ this.name=name; this.age=age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } @Override public String toString(){ return "" + name +","+ age; } }

    学生管理系统

    package com.itheima_09; 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; } @Override public String toString() { return sid + name + age + address; } } package com.itheima_09; import java.util.ArrayList; import java.util.Scanner; // Student // private String sid; // private String name; // private String age; // private String address; public class StudentDemo { public static void main(String[] args) { //学生集合 ArrayList<Student> arr = new ArrayList<Student>(); 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": //System.out.println("添加学生"); addStudent(arr); break; case "2": //System.out.println("删除学生"); deleteStudent(arr); break; case "3": //System.out.println("修改学生"); updateStudent(arr); break; case "4": //System.out.println("查看学生"); findAllStudent(arr); break; case "5": System.out.println("谢谢使用"); //break; System.exit(0);//JVM退出 } } } public static void addStudent(ArrayList arr) { Scanner sc = new Scanner(System.in); System.out.println("请输入学生学号"); String sid = sc.nextLine(); int index = exists(sid, arr); if (index != -1) { System.out.println("学生学号已经存在,请确认!"); return; } System.out.println("请输入学生姓名"); String name = sc.nextLine(); System.out.println("请输入学生年龄"); String age = sc.nextLine(); System.out.println("请输入学生地址"); String addr = sc.nextLine(); Student stu = new Student(sid, name, age, addr); arr.add(stu); System.out.println("添加成功"); } public static void findAllStudent(ArrayList arr) { if (arr.size() == 0) { System.out.println("无信息"); return; } System.out.println("学号\t姓名\t年龄\t地址"); for (int i = 0; i < arr.size(); i++) { Student s = (Student) arr.get(i); System.out.println(s.getSid() + "\t\t" + s.getName() + "\t\t" + s.getAge() + "岁\t\t" + s.getAddress()); } } public static void deleteStudent(ArrayList arr) { Scanner sc = new Scanner(System.in); System.out.println("请输入你要删除的学生编号"); String sid = sc.nextLine(); int index = exists(sid, arr); if (index == -1) { System.out.println("学生学号不存在,请确认!"); return; } arr.remove(index); System.out.println("删除学生" + sid + "成功!"); } public static void updateStudent(ArrayList arr) { Scanner sc = new Scanner(System.in); System.out.println("请输入要修改的学生学号"); String sid = sc.nextLine(); int index = exists(sid, arr); if (index == -1) { System.out.println("学生学号不存在,请确认!"); return; } System.out.println("请输入要修改的学生姓名"); String name = sc.nextLine(); System.out.println("请输入要修改的学生年龄"); String age = sc.nextLine(); System.out.println("请输入要修改的学生地址"); String addr = sc.nextLine(); Student s = (Student) arr.get(index); s.setSid(sid); s.setAge(age); s.setName(name); s.setAddress(addr); System.out.println("修改学生成功"); } //判断学生是否存在,对于删除与修改的场景 public static int exists(String sid, ArrayList arr) { int index = -1; for (int i = 0; i < arr.size(); i++) { Student s = (Student) arr.get(i); if (s.getSid().equals(sid)) { index = i; } } return index; } }
    Processed: 0.013, SQL: 9