Java 线性表

以下是一个简单的 Java 线性表(ArrayList)的实现示例:

import java.util.Arrays;

public class MyArrayList<E> {
    
    
    private static final int DEFAULT_CAPACITY = 10;
    private int size = 0;
    private Object elements[];

    public MyArrayList() {
    
    
        elements = new Object[DEFAULT_CAPACITY];
    }

    public void add(E e) {
    
    
        if (size == elements.length) {
    
    
            ensureCapacity();
        }
        elements[size++] = e;
    }

    @SuppressWarnings("unchecked")
    public E get(int i) {
    
    
        if (i >= size || i < 0) {
    
    
            throw new IndexOutOfBoundsException("Index: " + i + ", Size " + i);
        }
        return (E) elements[i];
    }

    public void remove(int i) {
    
    
        if (i >= size || i < 0) {
    
    
            throw new IndexOutOfBoundsException("Index: " + i + ", Size " + i);
        }
        Object temp = elements[i];
        int numElts = elements.length - ( i + 1 ) ;
        System.arraycopy( elements, i + 1, elements, i, numElts ) ;
        size--;
    }

    public int size() {
    
    
        return size;
    }

    public String toString() {
    
    
        StringBuilder sb = new StringBuilder();
        sb.append('[');
        for(int i = 0; i < size ;i++) {
    
    
            sb.append(elements[i].toString());
            if(i<size-1){
    
    
                sb.append(",");
            }
        }
        sb.append(']');
        return sb.toString();
    }

    private void ensureCapacity() {
    
    
        int newSize = elements.length * 2;
        elements = Arrays.copyOf(elements, newSize);
    }
}

这个类实现了一些基本的线性表操作,例如添加元素(add)、获取元素(get)、删除元素(remove)和获取线性表大小(size)。ensureCapacity 方法用于在需要时增加线性表的容量。toString 方法可以用于打印线性表的内容。注意,这个实现是泛型的,可以存储任何类型的对象。

猜你喜欢

转载自blog.csdn.net/wzxue1984/article/details/132922257