自定义对象,并使用自定义的对象创建对象数组;
实现对引用数据类型数组的增(Cread)删(Delete)查(Read)改(Update)操作
首先创建一个Person类,有姓名、年龄、性别三个属性
package data_structure_object_array_CURD;
public class Person {
private String name;
private int age;
private String sex;
public Person(){
}
public Person(String name,int age,String sex){
this.name=name;
this.age=age;
this.sex=sex;
}
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;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
创建实现方法类MyArray
package data_structure_object_array_CURD;
public class MyArray {
private Person [] person;
private int elems;
//获取数据的真实长度
public int getElems() {
return elems;
}
//无参构造
public MyArray(){
person = new Person[50];
elems=0;
}
//有参构造
public MyArray(int value){
person = new Person[value];
elems=0;
}
//插入数据
public void insert(Person pers){
person[elems]=pers;
elems++;
}
//遍历
public void display(){
for(int i=0;i<elems;i++){
System.out.println("姓名:"+person[i].getName()+"年龄:"+person[i].getAge()+"性别:"+person[i].getSex());
}
}
//查找数据,返回下标
public int find(String name){
int i;
for(i=0;i<elems;i++){
if(person[i].getName().equals(name)){
break;
}
}
if(i==elems){
return -1;
}else{
return i;
}
}
//删除数据
public int delete(String name){
//找到下标
int i=find(name);
if(i!=-1){
for(int j=i;j<elems;j++){
person[j]=person[j+1];
}
elems--;
return 1;
}else{
return elems;
}
}
//修改数据
public void change(Person oldpers,Person newpers){
//查找要修改数据的下标
int i =find(oldpers.getName());
if(i!=-1){
person[i]=newpers;
}
}
}
测试类
package data_structure_object_array_CURD;
public class TestMyArray {
public static void main(String[] args) {
MyArray myArray = new MyArray(10);
Person p1 = new Person("张三",18,"男");
Person p2 = new Person("李四",19,"男");
Person p3 = new Person("王五",20,"女");
Person p4 = new Person("黄六",21,"男");
Person p5 = new Person("小白",21,"女");
Person p6 = new Person("小黑",21,"男");
myArray.insert(p1);
myArray.insert(p2);
myArray.insert(p3);
myArray.insert(p4);
myArray.insert(p5);
myArray.display();
System.out.println("------");
System.out.println(myArray.find("李四"));
System.out.println("------");
myArray.delete("黄六");
myArray.display();
System.out.println("------");
myArray.change(p1, p6);
myArray.display();
}
}