一、对象数组
1.对象数组概述
①基本类型的数组:存储的元素为基本类型。
int[] arr={1,2,3,4}
②对象数组:存储的元素为引用类型。
Student[] stus = new Student[3];
二、集合类之ArrayList
1.集合概述
我们学习的是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来体现的。为了方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想对多个对象进行存储,就不能是一个基本的变量,而应该是一个容器类型的变量。
2.ArrayList集合
1) 集合类的特点
长度可变。
2) ArrayList
大小可变数组的实现。
①:是一种特殊的数据类型,泛型。
②在出现E的地方我们使用引用数据类型替换即可。
③举例:ArrayList,ArrayList。
3) 构造方法
①ArrayList()。
4) 添加元素
①public boolean add(Ee):添加元素。
②public void add(int index,Eelement):在指定的索引处添加一个元素。
5) 代码案例
public class ArrayListDemo {
public static void main(String[] args) {
//创建集合对象
ArrayList array = new ArrayList();
//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 array = new ArrayList();
//添加元素
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 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(" 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 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 array) {
if(array.size()==0) {
System.out.println("不好意思,当前没有学生信息可供删除,请回去重试!");
return;
}
System.out.println("请输入需要删除学生的姓名:");
String input = scan.nextLine();
for(int i=0; i
s = array.get(i);
if(input.equals(s.getName())) {
array.remove(i);
}else {
System.out.println("不好意思,学生系统中没有这个学生");
}
}
}
// 修改学生信息
public static void changeStu(ArrayList array) {
if(array.size()==0) {
System.out.println("不好意思,当前没有学生信息可供修改,请回去重试!");
return;
}
System.out.println("请输入需要修改学生的姓名:");
String input = scan.nextLine();
for(int i=0; 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 array) {
if(array.size()==0) {
System.out.println("不好意思,当前没有学生信息可供修改,请回去重试!");
return;
}
System.out.println("请输入需要查找的姓名:");
String input = scan.nextLine();
for(int i=0; i
if(input.equals(s.getName())) {
System.out.println("找到了...");
}
}
}
// 查看所有学生
public static void findAll(ArrayList array) {
if(array.size() == 0) {
System.out.println("不好意思,当前没有学生信息可供查询,请回去重试!");
return;
}
//"\t"是一个tab键
System.out.println("学号\t姓名\t年龄\t地址");
for(int i=0; i
// 从集合中取出一个学生信息
s = array.get(i);
System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddr());
}
}
}