定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同。

 学生的属性:学号,姓名,年龄。

  要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。

  要求2:添加完毕之后,遍历所有学生信息。

package com.zhao.test4;

public class Student {
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;
} 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;
}
}
package com.zhao.test4;

public class StudentTest {
/*定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同。
学生的属性:学号,姓名,年龄。
要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
要求2:添加完毕之后,遍历所有学生信息。*/ public static void main(String[] args) {
//创建一个数组用于存储最多三名学生的数据
Student[] stuArr = new Student[3];
//创建学生对象,并添加到数组中
//在括号中用快捷键ctrl+P查看有参构造内容
Student stu1 = new Student(1, "张三", 18);
Student stu2 = new Student(2, "李四", 19);
Student stu3 = new Student(3, "王五", 20); stuArr[0] = stu1;
stuArr[1] = stu2;
stuArr[2] = stu3;
//需求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
Student stu4 = new Student(4, "赵六", 21);
//唯一性判断
//先判断,如果判断重复就不用添加了
//写一个方法去判断唯一性,返回true或false来进行下一步
boolean flag = isOnly(stuArr, stu4.getId());
if (flag) {
//不重复,将学生添加到数组中
//数组已满——创建一个新数组,数组长度=老数组长度+1
//数组未满——直接添加
//写一个方法去判断数组是否存满,用于进行下一步
int count = getArrCount(stuArr);
//当使用getArrCount方法时,如果数组未满
//那么得到的count同时数组[count]的位置也是下一个数据填入的位置
if (count == stuArr.length) {
//数据已存满
//写一个方法用于创建新数组
Student[] newStuArr = newStuArr(stuArr);
//将新数据存入到数组的最后一位
newStuArr[count] = stu4;
//需求2:添加完后遍历新数组
printArr(newStuArr);
} else {
//数据未存满,直接添加
stuArr[count] = stu4;
//需求2:添加完后遍历数组
printArr(stuArr);
} } else {
System.out.println("当前id已存在,请重新输入!");
} } //写一个方法去判断唯一性,返回true或false来进行下一步
public static boolean isOnly(Student[] stu, int id) {
for (int i = 0; i < stu.length; i++) {
if (stu[i] != null) {
if (stu[i].getId() == id) {
return false;
}
}
}
return true;
} //写一个方法去比较数组是否存满,用于进行下一步
public static int getArrCount(Student[] stu) {
int count = 0;
for (int i = 0; i < stu.length; i++) {
if (stu[i] != null) {
count++;
}
}
return count;
} public static Student[] newStuArr(Student[] stuArr) {
//创建一个新数组,数组长度是老数组的长度+1
Student[] newStuArr = new Student[stuArr.length + 1];
//拷贝老数组到新数组中
for (int i = 0; i < stuArr.length; i++) {
newStuArr[i] = stuArr[i];
}
return newStuArr;
} //添加完毕后遍历
public static void printArr(Student[] stuArr) {
for (int i = 0; i < stuArr.length; i++) {
Student stu = stuArr[i];
if (stu != null) {
System.out.println(stu.getId() + " " + stu.getName() + " " + stu.getAge());
}
}
}
}

最新文章

  1. MMO之禅(二)职业精神
  2. Git搭建团队开发环境操作演练
  3. JAVA的UML
  4. USACO Section 3.2: Feed Ratios
  5. hdu1162Eddy&#39;s picture
  6. Unity3D Quaternion各属性和函数测试
  7. BZOJ 2245: [SDOI2011]工作安排( 费用流 )
  8. win7和ubuntu双系统,win7时间晚8小时解决办法。
  9. win10 uwp json
  10. 浅谈ES6
  11. 【Linux 操作系统】Ubuntu 配置 ftp freemind adb
  12. JDBC数据库
  13. JVM调优(二)经验参数设置
  14. elk-filebeat-(效果图示)(四)
  15. poj 2059 单调栈
  16. viewpager+fragment滑动切换卡顿问题
  17. MySQL性能调优与架构设计——第9章 MySQL数据库Schema设计的性能优化
  18. MVC4发布到IIS,出现HTTP 错误 404.0 - Not Found的解决方法
  19. mysql三-6:完整性约束
  20. wrqer

热门文章

  1. angular父子组件传值,子组件传值给父组件,父组件又传值给子组件
  2. webpack打包后发现有一部分代码还携带注释,如何解决?/webpack打包删除注释以及console.log--快快点进来看一看吧~~
  3. wixtoolset visualstudio 2017打包流程(1)
  4. 最长上升子序列 II 时间复杂度(nlogn)
  5. 通过URL地址将图片保存到本地
  6. IoT 边缘集群基于 Kubernetes Events 的告警通知实现(二):进一步配置
  7. C# 高德地图WebApi对接示例
  8. Sentinel熔断与限流
  9. 鼎阳SDS6204长波形读取的潜力挖掘及上海光源测试
  10. 把Excel自动转换Json格式