Java中List接口

1.List接口概述
List接口特征:
1.数据存储可重复
2.有序,添加顺序和保存顺序一致
–| ArrayList 可变长数组
–| LinkedList 可变长数组
–| Vector 可变长数组
2.List常用方法

增:boolean add(E e);
		List接口继承Collection接口,使用操作和Collection一致【尾插法】
		boolean add(int index , E e);
		List接口【特有方法】,在指定位置,添加指定元素
		boolean addAll(Collection<? extends E> c);
		List接口继承Collection接口 addAll方法,使用操作和Collection一致,采用的方式【尾插法】
		boolean addAll(int index , Collection<? extends E> c);
		List接口【特有方法】,在指定下标位置,添加另一个集合中所有内容

删:E remove(int index); List接口【特有方法】,获取指定下标位置的元素
		boolean remove(Object obj); List接口Collection接口方法,删除集合中指定元素
		boolean removeAll(Colleection<?> c); List接口继承Collection接口方法,删除当前集合中和参数集合重复元素
		boolean retainAll(Colleection<?> c); List接口继承Collection接口方法,保留当前集合中和参数集合重复元素
		clear();  List接口继承Collection接口方法,清空整个集合元素中的所有元素

改: E set(int index , E e); List接口【特有方法】,使用指定元素替代指定下标的元素,返回值是被替换的元素

查: int size(); List接口继承Collection接口方法,获取集合中有效元素个数
		boolean isEmpty(); List接口继承Collection接口方法,判断当前集合是否为空
		boolean contains(Object obj);  List接口继承Collection接口方法,判断指定元素是否包含在当前集合中
		boolean containsAll(Collection<?> c);  List接口继承Collection接口方法,	判断参集合是不水当前集合在子集合
		Object[] toArray(); List接口继承Collection接口方法,获取当前集合所有元素Object数组
		E get(int index); List接口【特有方法】,获取指定下标对应的元素
		List<E> subList(int fromIndex , int toIndex); List接口【特有方法】,获取当前集合指定子集合,从fromIndex 开始,到toIndex结束 fromIndex  <= 范围 < toIndex
		int indexOf(Object obj); List接口【特有方法】,获取指定元素在集合中第一次出现的位置
		int lastindexOf(Object obj); List接口【特有方法】,获取指定元素在集合中最后一次出现的位置

3.ArrayList概述
ArrayLis是在Java中集合非常中的组成,基于数组完成的数据结构,可变长数组操作,底层保存数据是一个Object类型数组
ArrayLis使用的方法都是List接口中的方法,需了解的成员方法

ensureCapacity(); 判断方法,用于确定当前底层数组的容量是否满足当前操作的需求
trimToSize(); 节省空间,将底层数组的容量锁绒至有效元素个数

4.细节问题

DEFAULT_CAPACITY
		默认容量 private static final int DEFAULT_CAPACITY = 10 ;
		在调用ArrayList无参数构造方法时,才会使用DEFAULT_CAPACITY,作为底层Object数组的初始化容量,如果用户指定调用的是带有初始化底层Object数组容量的构造方法,会根据用户指定的容量创建成一个ArrayList集合

MAX_ARRAY_SIZE ==> Integer.MAX_VALUE - 8 ;
	-8的原因:在数组中存在很多属性,length只是众多属性中的一个,在创建数组使用过程中,需要留有内存空间用于保存数组中属性

5.ArrayList特征:
增加慢:1.数组当前容量无法满足添加操作,需要进行扩容,存在数组创建,数组数据拷贝,浪费时间和内存。
2.数组在添加数据的过程中,存在在指定元素添加元素,从指定位置开始,之后的元素整体向后移动
删除慢:1.删除数据之后,从删除位置开始,之后的元素整体向前移动,移动过程浪费时间
2.删除操作会导致数组空间的浪费,内存浪费
查询快:ArrayList底层是一个数组结构,在查询操作的过程中,是按照数组+下标的方式来操作对应的元素,数组+下标方式可以直接获取对应的空间首地址,CPU访问效率高
6.内存地址
概念:计算机中为了更好的使用内存,操作程序,完后代码,将内存按照最小单位,进行编号处理。
最小单位:字节(byte)
从编号为0内存开始,到内存的最大值,地址以十六进制展示
7.内存地址和CPU的关系
CPU就是根据内存地址,可以直达内存所在区域,执行对应代码,速度快。
8.关于null的解释
null是计算机中非常特殊的内存,内存编号 0x0000 0000一般用于引用数据类型的初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值