题目要求:
首先理清楚思路(完成要求1,2)
1.创建一个长度为3的数组
2.创建学生对象
3.把学生对象添加到数组当中
4.再次创建一个学生对象
5.id唯一性判断
5.1 id已存在 ---提示重复
5.2 id不存在 ---添加学生对象
6.添加学生对象
6.1 老数组已满
6.1.1创建一个新数组,把老数组元素放入新数组,并且新数组的长度:老数组+1
6.2 老数组没满 直接添加
首先创建数组对象的javabeen类
Javabeen类
package StudentArr;
public class Student {
int id;
String name;
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 StudentArr;
public class Test {
public static void main(String[] args) {
//定义一个数组存放三个学生对象
Student[] arr = new Student[3];
//定义学生对象,放入数组
Student stu1 = new Student(1, "zhangsan", 11);
Student stu2 = new Student(2, "wanger", 12);
Student stu3 = new Student(3, "lisan", 13);
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;
//再添加一个学生对象
Student stu4 = new Student(4, "wusi", 14);
//唯一性判断
//已存在id --- 不用添加
boolean flag = Judge(arr, stu4.getId());
if (flag){
System.out.println("id已存在,请修改后再插入");
}else{
//不存在id --- 就可以吧学生对象添加进去
//把stu4添加到数组中
//1.数组已经存满,---只能创建一个新数组,把老数组元素拷贝进新数组,且新数组的长度是老数组+1
//2.数组没有存满 --- 直接添加
int count = getCount(arr);
if (count == arr.length) {
//已存满
Student[] newArr = CreatArr(arr);
newArr[count] = stu4;
Print(newArr);
}else{
//未存满
//[stu1,stu2,null]
//getCount获取的是2,表示数组中有2个元素
//还有一层意思,如果下一次要添加数据,这就是添加到2索引的位置,因为2索引位置对应的是第三个元素,第三个元素为null
arr[count] = stu4;
Print(arr);
}
}
}
//要求3:通过id删除学生信息
//如果存在则删除,如果不存在则提示删除失败
//1.找到id在数组中对应的索引,定义一个方法
public static int getIndex(Student[] arr,int id){
for (int i = 0; i < arr.length; i++) {
if (arr != null){
int sid =arr[i].getId();
if (sid == id){
return i; //如果要查找的id等于数组中的id 则返回索引i
}
}
}
//循环结束表示不存在
return -1;
}
//方法区
//定义一个方法遍历所有学生信息
public static void Print(Student[] arrTest){
for (int i = 0; i < arrTest.length; i++) {
if (arrTest[i] != null){
System.out.println(arrTest[i].getId()+" "+arrTest[i].getName()+" "+arrTest[i].getAge());
}
}
}
//定义一个方法用于把老数组元素拷贝到新数组
//这里在定义方法的时候使用了Student[]这个引用数据类型
public static Student[] CreatArr(Student[] arr) {
Student[] arr2 = new Student[arr.length + 1];
//遍历数组
for (int i = 0; i < arr.length; i++) {
//把老数组的元素添加到新数组中
arr2[i] = arr[i];
}
return arr2;
}
//定义一个方法用于判断数组存了几个元素
public static int getCount(Student[] arr) {
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != null) { //get方法遇到null的话就会报错,这里防止遇到这种情况加一个判断
count++;
}
}
return count;
}
//定义一个方法用于唯一性判断
//创建方法要想三个件事情
//1.我要干什么 判断id是否存在
//2.在我做这件事的时候需要什么 数组,id值
//3.方法的结果是否被调用,如果需要被调用则返回 需要返回
public static boolean Judge(Student[] arr, int id) {
//遍历数组 得到id
for (int i = 0; i < arr.length; i++) {
if (arr[i]!=null){
int sid = arr[i].getId();
//比较 存在就返回true
if (sid == id) {
return true;
}
}
}
//当循环结束之后,还没有找到一样的,那么表示数组中要查找的id不存在
return false;
}
}
定义方法的三要素
//定义一个方法的三要素
//创建方法要想三个件事情
//1.我要干什么 判断id是否存在
//2.在我做这件事的时候需要什么 数组,id值
//3.方法的结果是否被调用,如果需要被调用则返回 需要返回
要求3
要求3代码
package StudentArr;
public class Test2 {
public static void main(String[] args) {
//定义一个数组存放三个学生对象
Student[] arr = new Student[3];
//定义学生对象,放入数组
Student stu1 = new Student(1, "zhangsan", 11);
Student stu2 = new Student(2, "wanger", 12);
Student stu3 = new Student(3, "lisan", 13);
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;
int index =getIndex(arr,2);
System.out.println("当前id的数组下标索引是:"+index);
if (index >= 0){
System.out.println("删除成功,下面是现在数组的成员");
arr[index]=null;
Print(arr);
}else {
System.out.println("id不存在请重新输入");
}
//要求3:通过id删除学生信息
//如果存在则删除,如果不存在则提示删除失败
//1.找到id在数组中对应的索引,定义一个方法
public static int getIndex(Student[] arr,int id){
for (int i = 0; i < arr.length; i++) {
if (arr != null){
int sid =arr[i].getId();
if (sid == id){
return i; //如果要查找的id等于数组中的id 则返回索引i
}
}
}
//循环结束表示不存在
return -1;
}
public static void Print(Student[] arrTest){
for (int i = 0; i < arrTest.length; i++) {
if (arrTest[i] != null){
System.out.println(arrTest[i].getId()+" "+arrTest[i].getName()+" "+arrTest[i].getAge());
}
}
}
}
要求4-5
要求4-5代码
package StudentArr;
public class Test2 {
public static void main(String[] args) {
//定义一个数组存放三个学生对象
Student[] arr = new Student[3];
//定义学生对象,放入数组
Student stu1 = new Student(1, "zhangsan", 11);
Student stu2 = new Student(2, "wanger", 12);
Student stu3 = new Student(3, "lisan", 13);
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;
int index =getIndex(arr,2);
//不调用方法修改年龄
if (index>=0 && index<= arr.length) {
//年龄+1
if (arr[index].getId() == 2) {
int newAge = arr[index].getAge() + 1;
stu2.setAge(newAge);
System.out.println(stu2.getAge() + " ");
} else {
S ystem.out.println("id输入错误");
}
}else{
System.out.println("id不在数组内");
}
//查询数组id为2的学生,如果存在,则将他的年龄+1
//调用方法来修改年龄,
//int newAge=ChangeAge(arr,2);
//arr[index].setAge(newAge);
//System.out.println(arr[index].getAge()+" ");
}
//定义一个方法用于修改年龄
public static int ChangeAge(Student[] arr,int id){
int newAge=0;
for (int i = 0; i < arr.length; i++) {
if (arr[i].getId() == 2){
newAge = arr[i].getAge()+1;
}
}
return newAge;
}
//要求3:通过id删除学生信息
//如果存在则删除,如果不存在则提示删除失败
//1.找到id在数组中对应的索引,定义一个方法
public static int getIndex(Student[] arr,int id){
for (int i = 0; i < arr.length; i++) {
if (arr != null){
int sid =arr[i].getId();
if (sid == id){
return i; //如果要查找的id等于数组中的id 则返回索引i
}
}
}
//循环结束表示不存在
return -1;
}
public static void Print(Student[] arrTest){
for (int i = 0; i < arrTest.length; i++) {
if (arrTest[i] != null){
System.out.println(arrTest[i].getId()+" "+arrTest[i].getName()+" "+arrTest[i].getAge());
}
}
}
}