package com.fqs.demo1;
import java.util.Scanner;
public class StudentTest {
public static void main(String[] args) {
// 1.定义一个数组arr 存放4个学生信息
Student[] arr = new Student[4];
// 2.给4个数组赋初值
Student s0 = new Student("stu000", "s0", 18);
Student s1 = new Student("stu001", "s1", 19);
Student s2 = new Student("stu002", "s2", 20);
Student s3 = new Student();
arr[0] = s0;
arr[1] = s1;
arr[2] = s2;
arr[3] = s3;
// 3.从键盘获取第4个学生的信息
Scanner sc = new Scanner(System.in);
// 请输入学生id
System.out.println("请输入学生id");
String scid = sc.next();
// 4.判断第4个学生的id是否唯一
boolean flag = true;
flag = isFind(arr, scid);
while (flag == true) {
// 如果有重复的,再次输入
// 请输入学生id
System.out.println("请再次输入学生id");
scid = sc.next();
flag = isFind(arr, scid);
// 没有重复的则 跳出循环
if (flag == false) {
break;
}
}
if (flag == false) {
//初始化等于空的次数为0 才能在外面打印
int count=0;
//新的数组arr2的长度大于arr,多一个长度
Student []arr2=new Student[arr.length+1];
//如果有3个不等于null,说明剩余1个空,说明有空位,直接填写
if(getCount(arr)<arr.length) {
System.out.println("将scid赋值给arr[3]");
arr[getCount(arr)].setId(scid);
}
//如果次数等于4说明已经满了,需要新的数组
else if(getCount(arr)==arr.length) {
//赋值arr内的元素到arr2
arr2=arr;
System.out.println("数组已满,将scid赋值给arr[4]");
arr2[count].setId(scid);
//6.打印arr2数组内全部的值
for (int i = 0; i < arr2.length; i++) {
Student s = arr2[i];
System.out.println(s.getId() + " " + s.getName() + " " + s.getAge());
}
}
}
// 5.打印arr数组内全部的值
for (int i = 0; i < arr.length; i++) {
Student s = arr[i];
System.out.println(s.getId() + " " + s.getName() + " " + s.getAge());
}
}// 结束main方法
// 1.我要干什么 获取这个scid是否在数组内已存在isFind 存在true 不存在 false
// 2.我需要根据什么来判断 输入arr scid
// 3.我需要获得什么 return true;return false
public static boolean isFind(Student[] arr, String scid) {
// 如果找到,返回真
for (int i = 0; i < arr.length; i++) {
if (arr[i].getId() != null && arr[i].getId().equals(scid)) {
return true;
}
} // 结束for循环
return false;
}// 结束isFind方法
// 1.我要干什么 获取数组满了吗 数组内的元素==空 说明不满 计数一次
// 2.我需要根据什么来判断 传入数组
// 3.我需要获得什么 计数=0说明满了 不等于0 说明没有满
//不满的次数count
public static int getCount(Student[]arr) {
int count=0;
for(int i=0;i<arr.length;i++) {
if (arr[i].getId()!=null) {
count++;
}
}//结束for循环
System.out.println("count:"+count);
return count;
}//结束getCount方法
}
标签:count,arr,否则,System,else,scid,Student,二选,arr2 From: https://www.cnblogs.com/haha1988/p/17220688.html