#Java基础学习总结----数组 · 列表

数组

数组Array就是一个已知长度,已知数据类型的容器,大小不可变,可以通过.length得到数组长度,一般通过循环来查找或增加删除,同时要相应的改变其他值。
但数组便于遍历和通过下标访问相应元素。

列表

List是一个接口,所以List不能被构造不能定义对象。其内部有各种方法(比如增加查找删除等)的雏形,但是方法只申明了,里面内容为空。因为Java不像C++一样支持多继承,所以Java可以通过实现接口来弥补这个局限。

数组列表

那么结合两者的优势及缺陷,Java中的列表ArrayList相当于一个C++中STL容器里的方法,内含比如增加(add)、删除(remove)、获取(get)等方法(已定义好),参考其源代码,可以在运用时加快效率,迅速达到目的。
ArrayList是一个类,它实现了List接口,可以被构造。
ArrayList没有固定的长度,可以动态地改变,便于数据的修改。
也由于没有固定的长度,整个ArrayList作为一个对象出现,在定义时只需定义对象即可,即不需要加上[ ]。

我们可以自己手动写一个ArrayList加深印象,
这是list接口:

public interface list<E> {

	//增删获查
	public boolean add(E e);
	public boolean delete();
	public boolean delete(int index);
	public int getsize();
	public boolean get(int index);
	
}

然后ArrayList类中:

public class Arraylist<E> implements list<E>{

	//定义一个数组
	Object[] array = new Object[0];
	//尺寸
	int size = array.length;
	
	public boolean add(E e) {

        Object[] data = new Object[size+1];  
        System.arraycopy(array, 0, data, 0, size);
        array = data;
        array[size] = e;
        size++;
		return true;
	}

	public boolean delete() {
		Object[] data = new Object[size-1];
		System.arraycopy(array, 0, data, 0, size-1);
		array = data;
		size--;
		return true;
	}

	public boolean delete(int index) {
		Object[] data = new Object[size-1];
		System.arraycopy(array, 0, data, 0, index-1);
		System.arraycopy(array, index, data, index-1, size-index);
		array = data;
		size--;
		return true;
	}
	
	public int getsize() {
		
		return size;
	}

	public boolean get(int index) {

    	System.out.println(array[index]);
    	return true;
    	
    }
	
	public static void main(String[] args){
		
		Arraylist<Integer> data = new Arraylist<>();
		data.add(555555555);
		data.add(666666666);
		data.delete(1);
		for(int i = 0; i<data.getsize(); i++){
			data.get(i);
		}
	}
	
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值