public class OrderList {
private static Animal[] animals;//Animal对象数组
private int maxLength;//数组最大容量
private int length;//数组当前容量
public OrderList() {
animals = new Animal[10];//默认数组的长度为10
this.maxLength = 10;
}
public OrderList(int mdLength) {
animals = new Animal[mdLength];
this.maxLength = mdLength;
}
public int getLength() {
return length;
}
/**
* 顺序插入
* @param args
*/
public void orderInsert(Animal obj) {
if(length==maxLength-1) {
System.out.println("数组容量已满,请扩容");
}
animals[length] = obj;
length++;
}
/**
* 择序插入
* @param args
*/
public void selectInsert(int pos,Animal obj) {
if(length==maxLength-1) {
System.out.println("数组容量已满,请扩容");
}
if(pos<0||pos>maxLength-1) {
System.out.println("选择插入位置出错");
}
for(int i=pos;pos<=length;pos++) {
Animal temp = animals[pos];
animals[pos] = obj;
obj=temp;
}
length++;
}
/**
* 对数组进行删除操作
* @param args
*/
public void delete(int pos) {
if(pos<0||pos>maxLength-1) {
System.out.println("选择删除位置出错");
}
for(int i=pos;i<length;i++) {
animals[pos] = animals[pos+1];
}
length--;
}
/**
* 测试
* @param args
*/
public static void main(String[] args) {
OrderList test = new OrderList();
Animal animal1 = new Animal(1,"老虎",6);
Animal animal2 = new Animal(2,"大象",7);
Animal animal3 = new Animal(3,"孔雀",6);
test.orderInsert(animal1);
test.orderInsert(animal2);
test.selectInsert(0, animal3);
test.delete(2);
for(int i=0;i<=test.getLength()-1;i++) {
System.out.println(animals[i].getName());
}
System.out.println(test.getLength());
/*测试数组中放入Animal对象
* animals[0] = animal1;
animals[1] = animal2;
System.out.println(animals[0]);
System.out.println(animals[1]);
*/
}
}
class Animal{
private int aid;
private String name;
private int age;
public Animal() {
}
public Animal(int aid,String name,int age) {
this.aid = aid;
this.name = name;
this.age = age;
}
public int getAid() {
return aid;
}
public void setAid(int aid) {
this.aid = aid;
}
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;
}
}
文记:线性表的顺序存储结构本质是数组的应用,把对象存到数组中,然后进行删除,插入等操作,我在测试遇到一个问题,如上图,animal[i]无论是指向哪一个对象,显示台的引用参数不会变,就不能确定代码是否正确,所以要用getName()获取名字来确认插入或删除是否成功。