JAVA基础知识之ArrayList

今天简单说下ArrayList,底层实现为数组

transient Object[] elementData;

增加删除方法都是通过数组copy方法,之后再增加size大小

System.arraycopy(Object src, int  srcPos, Object dest, int destPos, int length)

以下为ArrayList的所有方法总结了下
ensureCapacity(int minCapacity)方法,扩展ArrayList内部数组的空间大小
size()方法,获取ArrayList的实际列表大小,而不是内部数组空间大小
isEmpty()方法,判断ArrayList的实际大小是否为空
contains(Object o)方法,判断ArrayList中是否存在该Object,内部实际调用indexOf方法
indexOf(Object o)方法,获取Object在ArrayList中的指针位置(第一个相同的Object),循环遍历所有数组挨个查找。
lastIndexOf(Object o)方法,获取Object在ArrayList中的最后一个指针位置(最后一个相同的Object),循环遍历所有数组挨个查找。
clone()方法,将原有ArrayList克隆一份给新建立的ArrayList,但是列表内部的数组中的信息不变
toArray()方法,将原有ArrayList转换为数组
toArray(T[] a)方法,将原有ArrayList转换为指定类型的数组
get(int index)方法,获取ArrayList中指定指针的内容
set(int index, E element)方法,设定ArrayList中指定指针位置的内容
add(E e)方法,在ArrayList尾部增加内容
add(int index, E element)方法,在ArrayList制定指针为增加内容,下一个指针内容向后顺移,为数组新增一个空间,通过System.arraycopy逐个复制指针后面每一个到下一个位置
remove(int index)方法,删除在ArrayList指定指针的内容,通过System.arraycopy逐个复制指针后面每一个到上一个位置,将最后一个位置设置为null
remove(Object o)方法,删除在ArrayList中的第一个相同的Object
clear()方法,清除ArrayList的内容
addAll(Collection c)方法,将新的列表全部增加到原有ArrayList的尾部
addAll(int index, Collection c)方法,将新的列表全部增加到原有ArrayList的指定指针位置,剩下的向后顺移
removeAll(Collection c)方法,将所有的传入列表的内容从原有ArrayList中删除
retainAll(Collection c)方法,将所有的传入列表的内容从原有ArrayList中保留,其余删除
listIterator(int index)方法,在指定指针位置开始创建ListIterator
listIterator()方法,在头开始创建ListIterator
iterator()方法,在开头穿件Iterator
subList(int fromIndex, int toIndex)方法,从开始指针到结束指针创建一个新的SubList,实际不是ArrayList,而是将SubList的开始指针指向ArrayList的fromIndex位置,SubList的结束指针指向ArrayList的toIndex位置。

foreach方法,JDK1.8新增的循环获取ArrayList的值

arrayList.forEach(x -> System.out.println(x));

removeIf方法,JDK1.8新增通过lamada表达式删除符合规则的项

arrayList.removeIf(x -> x.equals("1")|| x.equals("2"));

replaceAll方法,通过lamada表达式替换符合规则的项

arrayList.replaceAll(x->x.equals("3")?"三":x);

ArrayListSpliterator
将原有的ArrayList按照指针指向的起始index和结束index来拆分成新的ArrayList(实际类型为ArrayListSpliterator),但不可修改。

你可能感兴趣的:(javaarraylist)