package com.kongdechang.api;
public final class ArrList {
private static final int DEFAULT_LENGTH = 10; // 初始化默认长度
private static final Object[] EMPTY_OBJ_ARRAY = {};//定义空的对象数组
private static final Object[] DEFAULT_EMPTY_OBJ_ARRAY = {};//定义空的对象数组 默认数组
private Object[] objectArray;// 定义未初始化的对象数组
private int arraySize;
public ArrList(int arraySize) {
if(arraySize>0){
objectArray = new Object[arraySize];
}else if (arraySize == 0){
objectArray = EMPTY_OBJ_ARRAY;
}else {
System.out.println("数组长度不能小于0");
}
}
public ArrList(){
objectArray = DEFAULT_EMPTY_OBJ_ARRAY;
}
public int size(){
return arraySize;
}
public boolean isEmpty(){
return arraySize == 0;
}
public int indexOf(Object o){
for (int i = 0; i < arraySize; i++) {
if (o == null){
if (objectArray[i]==null)
return i;
}else {
if (o.equals(objectArray[i]))
return i;
}
}
return -1;
}
public boolean contains(Object o){
return indexOf(o)>=0;
}
public Object[] toObjectArray(){
Object[] objArr = new Object[arraySize];
for (int i = 0; i < objArr.length; i++) {
objArr[i] = objectArray[i];
}
return objArr;
}
public Object get(int index){
if (index<0){
System.out.println("索引不能小于0");
return null;
}else {
return objectArray[index];
}
}
public Object set(int index,Object o){
if (index<0){
return null;
}
Object oldOBJ = objectArray[index];
objectArray[index] = o;
return oldOBJ;
}
public boolean add(Object o){
Object[] oldArray = objectArray;
Object[] newArray = new Object[++arraySize];
for (int i = 0; i < oldArray.length; i++) {
newArray[i] = oldArray[i];
}
newArray[arraySize-1] = o;
objectArray = newArray;
return true;
}
public void add(int index,Object o){
Object[] oldArray = objectArray;
Object[] newArray = new Object[++arraySize];
for (int i = 0; i < index; i++) {
newArray[i] = oldArray[i];
}
for (int i = index;i<oldArray.length;i++){
newArray[i+1] = oldArray[i];
}
newArray[index] = o;
objectArray = newArray;
}
public Object rem(int index){
Object o = get(index);
Object[] oldArray = objectArray;
Object[] newArray = new Object[arraySize];
for (int i = 0; i < arraySize; i++) {
if (i>index){
newArray[i-1] = oldArray[i];
}else if(i<index) {
newArray[i] = oldArray[i];
}
}
objectArray = newArray;
arraySize--;
return o;
}
public boolean rem(Object o){
if (o == null){
for (int i = 0; i < arraySize; i++) {
if (objectArray[i]==null){
rem(i);
return true;
}
}
}else {
for (int i = 0; i < arraySize; i++) {
if (o.equals(objectArray[i])){
rem(i);
return true;
}
}
}
return false;
}
}
测试代码
package com.kongdechang.api;
public class TestArray {
public static void main(String[] args) {
//String str1 = "aaa";
//ArrList arrList = new ArrList();
//arrList.add(str1);
//arrList.add(str1);
//arrList.add(str1);
//System.out.println(arrList.get(0));
//System.out.println(arrList.get(1));
//System.out.println(arrList.get(2));
//System.out.println("------------------------");
//for (int i = 0; i <arrList.size() ; i++) {
// System.out.println(arrList.get(i));
//}
//arrList.add(3,"kong");
//System.out.println(arrList.size());
//System.out.println(arrList.get(3));
//arrList.add(2,"kong");
//System.out.println(arrList.get(2));
//System.out.println("------------------------");
//for (int i = 0; i <arrList.size() ; i++) {
// System.out.println(arrList.get(i));
//}
String str1 = "aaa";
ArrList arrList = new ArrList();
arrList.add(str1);
arrList.add(str1);
arrList.add(str1);
arrList.add(1,"bbb");
arrList.set(0,"dfs");
arrList.rem(1);
arrList.rem("aaa");
for (int i = 0; i < arrList.size(); i++) {
System.out.println(arrList.get(i));
}
System.out.println(arrList.size());
}
}