一、对象数组pro++
先定义一个JavaBean类
package com.itheima.exe5;
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;
}
}
对于要求1和要求2:
package com.itheima.exe5;
public class StudentTest {
public static void main(String[] args) {
Student arr[]=new Student[3];
Student s1=new Student(1,"马春红",21);
Student s2=new Student(2,"lili",22);
//Student s3=new Student(1,"红红",24);
arr[0]=s1;
arr[1]=s2;
//arr[2]=s3;
//1.再添加一个新的对象
Student s4=new Student(4,"赫赫",25);
//2.判断新添加的对象学号是否唯一
boolean flag=contains(arr,s4.getId());
if(flag==true){//说明不唯一,要输出一些提示
System.out.println("学号不唯一,无法添加");
}
else{
//学号唯一,可以添加,但要判断数组是否已满
int count=iffull(arr);
if(count==arr.length){ //数组已满,需要再建立一个新的数组,长度为原数组长度+1
Student[] newarr=constructarr(arr);
newarr[count]=s4;
printArr(newarr);
}
else{
//数组不满
arr[count]=s4;
printArr(arr);
}
}
}
public static boolean contains(Student arr[],int id){
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=null){
if(arr[i].getId()==id){
return true;
}
}
}
return false;
}
public static int iffull(Student arr[]){
int count=0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=null){
count++;
}
}
return count;
}
public static Student[] constructarr(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 void printArr(Student []arr){
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=null){
System.out.println(arr[i].getId()+" "+arr[i].getAge()+" "+arr[i].getName());
}
}
}
}
对于要求3和4:
package com.itheima.exe5;
public class StudentTest {
public static void main(String[] args) {
Student arr[]=new Student[3];
Student s1=new Student(1,"马春红",21);
Student s2=new Student(2,"lili",22);
Student s3=new Student(3,"红红",24);
arr[0]=s1;
arr[1]=s2;
arr[2]=s3;
int id=4;
//3.通过id删除学生信息:要先通过id查数组的索引
int index=getIndex(arr,id);
if(index>=0){
arr[index]=null;
printArr(arr);
}
else{
System.out.println("不能删除,不存在");
}
}
public static boolean contains(Student arr[],int id){
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=null){
if(arr[i].getId()==id){
return true;
}
}
}
return false;
}
public static int iffull(Student arr[]){
int count=0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=null){
count++;
}
}
return count;
}
public static Student[] constructarr(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 void printArr(Student []arr){
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=null){
System.out.println(arr[i].getId()+" "+arr[i].getAge()+" "+arr[i].getName());
}
}
}
public static int getIndex(Student[] arr,int id){
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=null){
if(arr[i].getId()==id){
return i;
}
}
}
return -1;
}
}
删除数组中的元素,可将arr[i]=null;由某一个变量遍历找到某一个对象
对于要求5:
package com.itheima.exe5;
public class StudentTest {
public static void main(String[] args) {
Student arr[]=new Student[3];
Student s1=new Student(1,"马春红",21);
Student s2=new Student(2,"lili",22);
Student s3=new Student(3,"红红",24);
arr[0]=s1;
arr[1]=s2;
arr[2]=s3;
int id=2;
//3.通过id删除学生信息:要先通过id查数组的索引
int index=getIndex(arr,2);
arr[index].setAge(arr[index].getAge()+1);
printArr(arr);
}
public static boolean contains(Student arr[],int id){
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=null){
if(arr[i].getId()==id){
return true;
}
}
}
return false;
}
public static int iffull(Student arr[]){
int count=0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=null){
count++;
}
}
return count;
}
public static Student[] constructarr(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 void printArr(Student []arr){
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=null){
System.out.println(arr[i].getId()+" "+arr[i].getAge()+" "+arr[i].getName());
}
}
}
public static int getIndex(Student[] arr,int id){
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=null){
if(arr[i].getId()==id){
return i;
}
}
}
return -1;
}
}