给新数组arr2里的arr[新下标]的id属性赋值前 需要先给arr[新下标]初始化
package com.fqs.demo1; import java.util.Scanner; public class StudentTest2 { public static void main(String args[]) { //1.新建一个3个长度的数组 Student []arr=new Student[3]; //2.初始化数组 Student s0=new Student("stu000","s0",18); Student s1=new Student("stu001","s1",19); Student s2=new Student("stu002","s2",20); //3.3个值存到数组中 arr[0]=s0; arr[1]=s1; arr[2]=s2; //4.从键盘获取第4个值 Scanner sc=new Scanner(System.in); System.out.println("请输入学生的id"); String s3id=sc.next(); //将s3id存放到数组中 //5.判断s3id在arr中isFind出现过吗 //6.走到分岔路口,6.1出现过,键盘再次输入 6.2没出现过,存到arr[3]数组中 6.2是必须走的 //6.1 if(isFind(arr,s3id)) { while(isFind(arr,s3id)){//当isFind为true时,提示再次输入,当isFind为false时停止 System.out.println("请再次输入学生的id"); s3id=sc.next(); if(isFind(arr,s3id)==false) { break ; } } } if(isFind(arr,s3id)==false) {//不能是else 因为是顺序执行才对 //6.2分两种情况 获取id非空的个数getNotNull(Student []arr); //第一种 数组内有空 位置;第二种数组内无位置,需要新增数组 //第一种 int countok=getNotNull(arr); System.out.println("getNotNull(arr):"+countok); if(countok<arr.length) { System.out.println("arr[count].setId(s3id);"); arr[countok].setId(s3id); } //第二种 else if(countok==arr.length) { //1.新建一个arr长度+1的数组arr2 int len=arr.length+1; System.out.println("arr2的len:"+len); Student []arr2=new Student[len]; for(int i=0;i<arr.length;i++) { arr2[i]=arr[i]; } System.out.println("countok:"+countok); //先给arr2数组 初始化 数组[下标]关联Student Student sok=new Student(); //将sok赋值给arr2[3] arr2[countok]=sok; //赋值数组[下标]里 id属性 arr2[countok].setId(s3id); //8.打印数组arr2 for(int i=0;i<arr2.length;i++) { Student sok2=arr2[i]; System.out.println("arr2:"+sok2.getId()+" "+sok2.getName()+" "+sok2.getAge()); } } } //7.打印数组arr for(int i=0;i<arr.length;i++) { Student s=arr[i]; System.out.println("arr:"+s.getId()+" "+s.getName()+" "+s.getAge()); } }//结束主方法 //1.isFind 方法 获取boolean //2.传入(Student[]arr,String s3id) //3.有返回值 public static boolean isFind(Student[]arr,String s3id) { for(int i=0;i<arr.length;i++) { if(arr[i].getId()!=null&&arr[i].getId().equals(s3id)) { return true; } } return false; } //1.getNotNull 方法 获取int 数 //2.传入(Student[]arr) //3.有返回值个数 public static int getNotNull(Student []arr) { int count=0; for(int i=0;i<arr.length;i++) { if(arr[i].getId()!=null) { count++; } } return count; } }