简易数组线性表

数组线性表


import java.util.ArrayList;
import java.util.List;

/**

  • @Description:
  • @author: ZhuWenjie
  • @Date: 2018/12/15

**/

public class MyArrayList {
// 创建一个Object数组
private Object[] elementData;

private int size;

public MyArrayList(){

// 默认长度10
this(10);
}

public MyArrayList(int initialCapacity){

    if (initialCapacity < 0){
        try {
            throw new Exception();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    elementData = new Object[initialCapacity];
}

// 返回列表大小
public int size(){
return size;
}

// 判断列表是否为空
public boolean isEmpty(){
return size == 0;
}

// 添加方法
public void add(Object obj){
// 数组扩容
if (size == elementData.length){

        //创建一个新数组
        Object[] element = new Object[size * 2 + 1];
        //拷贝
        System.arraycopy(elementData,0,element,0,elementData.length);
        elementData = element;
    }
    elementData[size++] = obj;
}

// 按值删除列表元素
public void remove(Object obj){
for (int i = 0;i < size; i++){
if (obj.equals(elementData[i])){
for (;i < size - 1; i++){
elementData[i] = elementData[i + 1];
}
}

    }
    size--;
}

// 查找列表中该元素的第一个下标值
public int index(Object obj){
for (int i = 0; i < size; i++){
if (obj.equals(elementData[i])){
return i;
}
}
return -1;
}

// 判断该元素是否在列表内
public boolean contains(Object obj){
return index(obj) >= 0;
}

public static void main(String[] args){

    MyArrayList list = new MyArrayList(3);
    list.add(10);
    list.add(20);
    list.add("aaa");
    list.add(500);
    
    System.out.println(list.size());
    
    System.out.println(list.index("aaa"));
    
    System.out.println(list.contains(500));
    
    list.remove(10);
    System.out.println(list.size());

}

}

猜你喜欢

转载自blog.csdn.net/qq_43463475/article/details/85014581
今日推荐