(日常打卡)自定义的一个模仿ArrayList的类, 你需要实现其中的add, get, remove , 等方法

问题:来源于码农翻身公众号

也不知道可以不,看看就好hhhhh

/**
 * 自定义的一个模仿ArrayList的类, 你需要实现其中的add, get, remove , 等方法
 * @author 刘欣
 */
public class SimpleList<T>{
    private Object[] elementData;
    private int size=0;    
    public int size() {            
        return -1;
    }
    public SimpleList(){        
    }
    public boolean isEmpty() {    
        return false;
    }    
    public boolean add(T e) {
        return false;
    }
    public boolean remove(Object o) {
        return false;
    }
    public T get(int index) {
        return null;
    }
}


SimpleList.java        remove(Object o)   改成  remove(int index)

package helloworld;

import java.util.Arrays;

public class SimpleList<T> {
	private Object[] elementData;
	private int size = 0;
	private int initsize = 2;

	public int size() {
		return size;
	}

	public SimpleList() {
		elementData = new Object[initsize];
		elementData.toString();
	}

	public boolean isEmpty() {
		return (this.size > 0) ? false : true;
	}

	public boolean add(T e) {
		if (size >= (elementData.length - 1)) {
			Object[] a = new Object[1 + elementData.length];
			a.toString();
			System.arraycopy(elementData, 0, a, 0, elementData.length);
			elementData = a;
		}

		elementData[size++] = e;
		return true;
	} 

	public boolean remove(int index) {
		for (int i = index; i < size; i++) {
			elementData[i] = elementData[index + 1];
		}
		elementData[size] = 0;

		size--;
		return true;
	}

	public T get(int index) {
		return (T) elementData[index];
	}

	@Override
	public String toString() {
		return "SimpleList [elementData=" + Arrays.toString(elementData) + ", size=" + size + "]";
	}

}

调用 uselist.java 

package helloworld;

public class uselist {

	
	public static void main(String[] args) {
		
		SimpleList<Integer> simarr = new SimpleList<Integer>();
		System.out.println("simarr.isEmpty():" + simarr.isEmpty() + "    simarr.size():" + simarr.size());

		simarr.add(97);
		simarr.add(56);
		simarr.add(16);
		System.out.println("simarr.isEmpty():" + simarr.isEmpty() + "   simarr.size():" + simarr.size()
				+ "   simarr.get(1):" + simarr.get(0));

		simarr.remove(0);
		System.out.println("simarr.isEmpty():" + simarr.isEmpty() + "   simarr.size():" + simarr.size()
				+ "   simarr.get(1):" + simarr.get(0));

	}

}



ArrayList 是Java中常用的动态数组,支持动态添加、获取、删除元素,并且可以根据下标快速访问元素。下面是一个基于Java实现 ArrayList 的示例代码,包括add、get、size、indexOf、remove方法实现: ```java public class ArrayList<T> { private T[] array; private int size; private static final int DEFAULT_CAPACITY = 10; public ArrayList() { array = (T[]) new Object[DEFAULT_CAPACITY]; size = 0; } public void add(T value) { if (size == array.length) { resize(); } array[size++] = value; } public T get(int index) { if (index < 0 || index >= size) { throw new IndexOutOfBoundsException("Index is out of range!"); } return array[index]; } public int size() { return size; } public int indexOf(T value) { for (int i = 0; i < size; i++) { if (array[i] == value) { return i; } } return -1; } public void remove(int index) { if (index < 0 || index >= size) { throw new IndexOutOfBoundsException("Index is out of range!"); } for (int i = index; i < size - 1; i++) { array[i] = array[i + 1]; } size--; } private void resize() { T[] newArray = (T[]) new Object[array.length * 2]; System.arraycopy(array, 0, newArray, 0, array.length); array = newArray; } } ``` 在上面的代码中,我们定义了一个名为ArrayList,它使用泛型实现一个动态数组。add方法用于添加元素,如果当前数组已满,则进行扩容;get方法用于获取指定下标的元素,如果下标越界则抛出异常;size方法返回元素个数;indexOf方法用于查找指定元素在数组中的下标,如果不存在则返回-1;remove方法用于删除指定下标的元素,如果下标越界则抛出异常。 希望这个示例代码对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值