public class student {
//构建javabean
private int id;
private String name;
private int age;
//空参构造
public student() {
}
//有参构造
public student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
//get和set
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class test {
public static void main(String[] args) {
/* 1.再添加一个学生对象 并在添加的时候进行学号的唯一性判断 2.添加完毕,遍历学生信息
//创建数组
student arr[] = new student[3];
//创建学生对象
student stu1 = new student(1, "小名", 19);
student stu2 = new student(2, "小红", 12);
student stu3 = new student(3, "张三", 19);
//把学生对象添加数组中
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;
//再建立学生对象
student stu4 = new student(4, "大哥", 20);
//唯一性判断
//调用方法 这括号里面放这个方法对应的值
boolean pd = only(arr, stu4.getId());
if (pd) {
//数组有这个值了
System.out.println("数组中有这个元素了 重新定义");
} else {
//数组没有这个值 考虑数组是否满了 满了添加新数组=旧数组+1 没满就直接添加
//调用sum方法
int count = sum(arr);
if (count== arr.length){
//满了 满了创建新数组=旧数组+1 定义方法
student[] newarr=newarr(arr);
//把stu4添加到新数组中
newarr[count]=stu4;
//添加完毕 遍历学生信息
print(newarr);
}
//没满
//把stu4添加到数组中
arr[count]=stu4;
//添加完毕 遍历学生信息
print(arr);
}
}
//要求2 添加完毕 遍历学生信息
public static void print(student arr[]){
for (int i = 0; i < arr.length; i++) {
student stu=arr[i];
if (stu!=null){
System.out.println(stu.getAge()+","+stu.getId()+","+stu.getName());
}
}
}
//创建一个新数组 新数组=老数组+1
//把老数组值拷贝给新数组
public static student[] newarr (student arr[]){
//创建新数组
student newarr[]=new student[arr.length+1];
for (int i = 0; i < arr.length; i++) {
//把老数组拷贝 到新数组中
newarr[i]=arr[i];
}
return newarr;
}
//定义方法判断数组中元素现在存在多少个
public static int sum(student arr[]){
//计数器
int count=0;
for (int i = 0; i < arr.length; i++) {
if (arr[i]!=null){
count++;
}
}
return count;
}
//定义方法 看id唯一性
public static boolean only(student arr[],int id){
//遍历数组
for (int i = 0; i < arr.length; i++) {
//依次取到数组中每个学生对象
student stu=arr[i];
//获取对象中学生id
int mind=stu.getId();
if (stu!=null){
if (mind==id){
return true;
}
}
}
return false;*/
/* 3.通过id删除学生信息 不存在则提示 4.删除完毕遍历学生信息
//创建数组
student arr[]=new student[3];
//添加学生对象
student stu1 = new student(1, "小名", 19);
student stu2 = new student(2, "小红", 12);
student stu3 = new student(3, "张三", 19);
//把对象放数组中
arr[0]=stu1;
arr[1]=stu2;
arr[2]=stu3;
//3.通过id删除学生信息 存在删除 不存在提示
int index=sc(arr,2);
System.out.println(index);
if (index>=0){
//删除后遍历数组 打印其他学生信息
arr[index]=null;
print(arr);
}else
//不存在提醒
System.out.println("输入id不存在 重新输入");
}
//定义方法遍历数组学生信息
public static void print(student arr[]){
for (int i = 0; i < arr.length; i++) {
//依次得到数组中的元素对象
student stu=arr[i];
if (stu!=null){
System.out.println(stu.getAge()+","+stu.getId()+","+stu.getName());
}
}
}
//定义方法 找id在数组中的索引
public static int sc(student arr[],int id) {
for (int i = 0; i < arr.length; i++) {
//依次得到数组中每个学生对象 i是索引 arr【i】是元素
student stu = arr[i];
if (stu != null) {
//数组中id
int sid = stu.getId();
//看看数组中的id 和输入id相同不
if (sid == id) {
//返回索引
return i;
}
}
}
return -1;
*/
//5.完成查询id为2的学生存在把年龄加1 遍历学生对象 也就是数组
//创建数组
student arr[]=new student[3];
//添加学生对象
student stu1 = new student(1, "小名", 19);
student stu2 = new student(2, "小红", 12);
student stu3 = new student(3, "张三", 19);
//把对象放数组中
arr[0]=stu1;
arr[1]=stu2;
arr[2]=stu3;
int index=sy(arr,2);
if (index>=0){
//存在年龄加1
student stu=arr[index];
//把原来年龄拿出来
int newage=stu.getAge()+1;
//把新年龄塞回去
stu.setAge(newage);
//遍历数组
print(arr);
}else
//不存在
System.out.println("id不存在");
}
//遍历学生对象
public static void print(student arr[]){
for (int i = 0; i < arr.length; i++) {
//依次得到数组中的元素对象
student stu=arr[i];
if (stu!=null){
System.out.println(stu.getAge()+","+stu.getId()+","+stu.getName());
}
}
}
//定义方法 先找到id为2的学生索引
public static int sy(student[] arr, int id){
for (int i = 0; i < arr.length; i++) {
//依次获取数组中学生对象
student stu=arr[i];
//得到数组中id
int sid=stu.getId();
//看看数组中id和 输入id一样不
if (sid==id){
return i;
}
}
return -1;
}
}