设置一个类, 命名为 MyList 类中包含属性:Object[] element 方法有如下几个:
- 增加方法 add : 可以向数组属性中依次存储 Object,数组内容存满时,需实现动态扩容(详解在下面)。
- 删除方法 remove :可以根据数据或下标,从数组属性中删除Object 数据,删除后,数组后续元素需前移。
- 查询方法 get :方法传入下标,返回数组中指定下标的数据。
- 当前存储数据量 size : 获取当前存储的有效数据长度
第一步
创建MyList类,包含数组属性Object[] element,紧接着写上各个方法和功能
public class MyList {
Object[] element;
final int BEGAIN = 3;
public MyList(){}
public MyList(Object[] element) {
this.element = element;
}
public Object[] getElement() {
return element;
}
public void setElement(Object[] element) {
this.element = element;
}
public void add(String txet,int n) {
if(n==element.length) {
Object[] newElement = new Object[element.length*2];
for(int i=0;i<element.length;i++) {
newElement[i] = element[i];
}
newElement[element.length] = new String(txet);
element = newElement;
}else {
element[n] = new String(txet);
}
}
public void remove(Object[] element,int index) {
if(index == element.length) {
element[element.length-1] = null;
}else {
for(int i=index;i<element.length-1;i++) {
element[i] = element[i+1];
}
if(element[element.length-1] != null) {
element[element.length-1] = null;
}
}
}
public void remove(Object[] element,Object text) {
RemoveEquals m1 = new Judge(text);
RemoveEquals m2 = new Judge();
for(int i=0;i<element.length;i++) {
m2.setText(element[i]);
if(m2.equals(m1)) {
if(i == element.length-1) {
element[i] = null;
break;
}else {
for(int j=i;j<element.length-1;j++) {
element[j] = element[j+1];
}
if(element[element.length-1] != null) {
element[element.length-1] = null;
}
}
}
}
}
public Object get(Object[] element,int index) {
if((index>=0) && (index<=element.length-1)) {
return element[index];
}else {
return false;
}
}
public int size(Object[] element) {
for(int i=0;i<=element.length-1;i++) {
if(element[i]==null) {
return i;
}
}
return element.length;
}
public void print() {
for(int i=0;i<element.length;i++) {
System.out.println(element[i]);
}
}
}
第二步
创建一个提供equals方法使用的类,定义为Judge
public class RemoveEquals {
public RemoveEquals() {
super();
}
public RemoveEquals(Object text) {
super();
this.text = text;
}
private Object text;
public Object getText() {
return text;
}
public void setText(Object text) {
this.text = text;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Judge other = (Judge) obj;
if (text == null) {
if (other.text != null)
return false;
} else if (!text.equals(other.text))
return false;
return true;
}
}
第三步
构造测试类测试各个功能是否完善
public class MylistTest {
public static void main(String[] args) {
MyList e = new MyList();
e.element = new Object[e.BEGAIN];
e.add("one", e.size(e.element));
e.add("two", e.size(e.element));
e.add("three", e.size(e.element));
e.add("four", e.size(e.element));
e.add("five", e.size(e.element));
e.print();
System.out.println(e.get(e.element, 3));
e.remove(e.element, 2);
e.print();
e.remove(e.element, "two");
e.print();
}
}
有许多不足,待改进之地,不喜勿喷!
注:其中包得自己创建!