一、定义学生类
pulic class Student{
public String name;
public int age;
public String phone;
public Student() {
}
public Student(String name, int age, String phone) {
this.name = name;
this.age = age;
this.phone = phone;
}
public void info(){
System.out.println("我叫:"+name+",今年:"+age+",电话是:"+phone);
}
}
二、书写操作方法
public class ArrayManage {
// 声明一个学生类数组
Student[] stus = new Student[3];
// 实际长度 即数组中学生对象的个数
int size=0;
// 追加学生对象信息
public void addStudent(Student stu){
// 当添加的元素等于数组的实际长度时,给数组进行扩容
if(stus.length == size){
stus = Arrays.copyOf(stus,stus.length+2);
}
// 将学生对象添加到数组中
stus[size] = stu;
// 添加成功 实际长度+1
size++;
}
// 查找
public int search(String name){
// 根据姓名查找学生所在的下标
int index = -1;
for (int i = 0; i < size; i++) { // size代表实际人数
Student s = stus[i]; // 获取第i个学生对象
if(s.name.equals(name)){ // 名称对比,如果一致就是找到了
index = i;
// 查找到跳出循环
break;
}
}
return index;
}
// 插入
public boolean add(String name,Student stu){
// 将新增学生对象 插入到指定学生之前
int index = search(name);
// 找到指定学生,将数组实际长度进行+1处理
if (index!=-1){
stus = Arrays.copyOf(stus,stus.length+1);
for (int i = size-1; i >= index; i--) {
stus[i+1] = stus[i];
}
stus[index] =stu;
size++;
return true;
}else {
return false;
}
}
// 删除
public boolean delete(String name){
// 根据名字查询是否含有此人
int index = search(name);
if(index!=-1){ // [1,2,3,4] size =4 3
for (int i = index; i < size-1; i++) {
stus[i] = stus[i+1]; // 往前移动一位
}
stus[size-1]=null; // 最后一位为null
size--; // 实际人数-1
return true;
}else{
return false;
}
}
// 排序
public void paiXu(){
for (int i = 1; i < size; i++) {
for (int j = 0; j <size-i; j++) {
// 根据学生的年龄进行排序
if(stus[j].age > stus[j+1].age){
Student temp = stus[j];
stus[j] = stus[j+1];
stus[j+1] = temp;
}
}
}
}
public void dianming(){
for (int i = 0; i < size; i++) {
stus[i].info();
}
}
}
三、测试
public class Test{
public static void main(String[] args) {
ArrayManage manage = new ArrayManage();
// 添加学生对象
manage.addStudent(new Student("张三",18,"15612312312"));
manage.addStudent(new Student("李四",20,"15612312312"));
manage.addStudent(new Student("王五",19,"15612312312"));
manage.addStudent(new Student("张麻子",17,"15612312312"));
// 遍历
manage.dianming();
System.out.println("===================================================");
// 查询
int index = manage.search("李四");
System.out.println(index);
System.out.println("===================================================");
// 指定位置添加对象
manage.add("李四",new Student("赵六",21,"123123123123"));
manage.dianming();
System.out.println("===================================================");
// 删除
manage.delete("李四");
manage.dianming();
System.out.println("===================================================");
// 根据年龄进行排序
manage.paiXu();
manage.dianming();
}
}
四、结果展示