一、对象数组
1.对象数组概述
①基本类型的数组:存储的元素为基本类型。
int[] arr={1,2,3,4}
②对象数组:存储的元素为引用类型。
Student[] stus = new Student[3];
二、集合类之ArrayList
1.集合概述
我们学习的是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来体现的。为了方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想对多个对象进行存储,就不能是一个基本的变量,而应该是一个容器类型的变量。
2.ArrayList集合
1) 集合类的特点
长度可变。
2) ArrayList<E>
大小可变数组的实现。
①<E>:是一种特殊的数据类型,泛型。
②在出现E的地方我们使用引用数据类型替换即可。
③举例:ArrayList<String>,ArrayList<Student>。
3) 构造方法
①ArrayList()。
4) 添加元素
①public boolean add(Ee):添加元素。
②public void add(int index,Eelement):在指定的索引处添加一个元素。
5) 代码案例
public class ArrayListDemo { public static void main(String[] args) { //创建集合对象 ArrayList<String> array = new ArrayList<String>(); //add(E e):添加元素 array.add("hello"); array.add("world"); array.add("java"); //add(int index,E element):在指定的索引处添加一个元素 //array.add(1, "android"); System.out.println("array:"+array); } }
3.ArrayList删改查方法
1) 获取元素
①public E get(int index):返回指定索引处的元素。
2) 集合长度
①public int size():返回集合中的元素的个数。
3) 删除元素
①public boolean remove(Object o):删除指定的元素,返回删除是否成功。
②public E remove(int index):删除指定索引处的元素,返回被删除的元素。
4) 修改元素
①public E set(int index,E element):修改指定索引处的元素,返回被修改的元素。
5) 代码案例
public class ArrayListDemo2 { public static void main(String[] args) { //创建集合对象 ArrayList<String> array = new ArrayList<String>(); //添加元素 array.add("hello"); array.add("world"); array.add("java"); //public E get(int index):返回指定索引处的元素 //System.out.println("get:"+array.get(0)); //System.out.println("get:"+array.get(1)); //System.out.println("get:"+array.get(2)); //public int size():返回集合中的元素的个数 //System.out.println("size:"+array.size()); //public boolean remove(Object o):删除指定的元素,返回删除是否成功 //System.out.println("remove:"+array.remove("world"));//true //System.out.println("remove:"+array.remove("world"));//false //public E remove(int index):删除指定索引处的元素,返回被删除的元素 //System.out.println("remove:"+array.remove(0)); //public E set(int index,E element):修改指定索引处的元素,返回被修改的元素 System.out.println("set:"+array.set(1, "android")); //输出 System.out.println("array:"+array); } }
4.以简单的学生管理系统为例,巩固ArrayList的使用
package manager; public class Student { private String id; private String name; private String age; private String address; // 学生类的构造方法 public Student(String id, String name, String age, String address) { this.id = id; this.name = name; this.age = age; this.address = address; } // 学号的获取和重置 public String getId() { return this.id; } public void setId(String id) { this.id = id; } // 姓名的获取和重置 public String getName() { return this.name; } public void setName(String name) { this.name = name; } // 年龄的获取和重置 public String getAge() { return this.age; } public void setAge(String age) { this.age = age; } // 地址的获取和重置 public String getAddr() { return this.address; } public void setAddr(String address) { this.address = address; } } package manager; import java.util.ArrayList; /* * System.exit(0); * 删除时,使用==查找不行,然后使用equals才可以 */ import java.util.Scanner; public class Manager { private static Student s; private static Scanner scan; public static void main(String[] args) { ArrayList<Student> array = 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(" 6:退出管理系统"); System.out.println("请输入您的选择:"); scan = new Scanner(System.in); String input = scan.nextLine(); switch(input) { case "1": addStu(array); break; case "2": // 删除 removeStu(array); break; case "3": // 修改 changeStu(array); break; case "4": // 查找 find(array); case "5": // 查看所有 findAll(array); break; case "6": // 退出程序执行 System.exit(0); break; default: System.out.println("请输入1-6的范围"); break; } } } // 添加学生 public static void addStu(ArrayList<Student> array) { System.out.println("请输入添加学生编号:"); String id = scan.nextLine(); System.out.println("请输入该学生姓名:"); String name = scan.nextLine(); System.out.println("请输入该学生年龄:"); String age = scan.nextLine(); System.out.println("请输入您想添加的地址:"); String address = scan.nextLine(); s = new Student(id, name, age, address); array.add(s); System.out.println("添加学生成功..."); } // 删除学生 public static void removeStu(ArrayList<Student> array) { if(array.size()==0) { System.out.println("不好意思,当前没有学生信息可供删除,请回去重试!"); return; } System.out.println("请输入需要删除学生的姓名:"); String input = scan.nextLine(); for(int i=0; i<array.size(); i++) { s = array.get(i); if(input.equals(s.getName())) { array.remove(i); }else { System.out.println("不好意思,学生系统中没有这个学生"); } } } // 修改学生信息 public static void changeStu(ArrayList<Student> array) { if(array.size()==0) { System.out.println("不好意思,当前没有学生信息可供修改,请回去重试!"); return; } System.out.println("请输入需要修改学生的姓名:"); String input = scan.nextLine(); for(int i=0; i<array.size(); i++) { s = array.get(i); if(input.equals(s.getName())) { System.out.println("请输入修改后的学生编号:"); String id = scan.nextLine(); s.setId(id); System.out.println("请输入修改后的学生姓名:"); String name = scan.nextLine(); s.setName(name); System.out.println("请输入修改后的学生年龄:"); String age = scan.nextLine(); s.setAge(age); System.out.println("请输入修改后的的地址:"); String address = scan.nextLine(); s.setAddr(address); System.out.println("修改完毕"); } } } // 查找学生信息 public static void find(ArrayList<Student> array) { if(array.size()==0) { System.out.println("不好意思,当前没有学生信息可供修改,请回去重试!"); return; } System.out.println("请输入需要查找的姓名:"); String input = scan.nextLine(); for(int i=0; i<array.size(); i++) { if(input.equals(s.getName())) { System.out.println("找到了..."); } } } // 查看所有学生 public static void findAll(ArrayList<Student> array) { if(array.size() == 0) { System.out.println("不好意思,当前没有学生信息可供查询,请回去重试!"); return; } //" "是一个tab键 System.out.println("学号 姓名 年龄 地址"); for(int i=0; i<array.size(); i++) { // 从集合中取出一个学生信息 s = array.get(i); System.out.println(s.getId()+" "+s.getName()+" "+s.getAge()+" "+s.getAddr()); } } }