(三)数组中存储对象

一、数组描述

在现实世界中,数组并不仅仅可以存储像我们以前所描述的基础数据类型,它还可以存储对象(当然,在Java语言中实际存储的是对象的引用。)下图描述了数组存储对象的原理:

(三)数组中存储对象

二、Java语言描述数组存储对象:

package com.solid.array;

public class Person {

//

private String firstName;

//

private String lastName;

//年龄

private int age;

/**

* 构造方法

* @param firstName

* @param lastName

* @param age

*/

public Person(String firstName, String lastName, int age) {

this.firstName = firstName;

this.lastName = lastName;

this.age = age;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getFirstName() {

return firstName;

}

public void setFirstName(String firstName) {

this.firstName = firstName;

}

public String getLastName() {

return lastName;

}

public void setLastName(String lastName) {

this.lastName = lastName;

}

}

package com.solid.array;

public class ObjectArray {

//对象数组

private Person[] person;

//数组下标

private int nElems;

/**

* 构造方法

* @param max

*/

public ObjectArray(int max) {

person = new Person[max];

nElems = 0;

}

/**

* 插入对象

* @param firstName

* @param lastName

* @param age

*/

public void insert(String firstName, String lastName, int age) {

person[nElems] = new Person(firstName, lastName, age);

nElems++;

}

/**

* 删除对象(假设lastName不重复)

* @param lastName

* @return

*/

public boolean delete(String lastName) {

int i;

for(i=0; i<nElems; i++) {

if(person[i].getLastName().equals(lastName))

break;

}

if(i == nElems) {

System.out.println("can't find: " + lastName);

return false;

} else {

for(int j=i; j<nElems; j++) {

person[j] = person[j+1];

}

nElems--;

System.out.println("delete success");

return true;

}

}

/**

* 查找对象(假设lastName不重复)

* @param lastName

* @return

*/

public boolean find(String lastName) {

int i;

for(i=0; i<nElems; i++) {

if(person[i].getLastName().equals(lastName))

break;

}

if(i == nElems) {

System.out.println("can't find: " + lastName);

return false;

} else {

System.out.println("find it");

return true;

}

}

/**

* 显示所有对象

*/