美文网首页小卜java
JAVA基础知识之ArrayList

JAVA基础知识之ArrayList

作者: 汤太咸啊 | 来源:发表于2021-11-02 23:06 被阅读0次

    今天简单说下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<? extends E> c)方法,将新的列表全部增加到原有ArrayList的尾部
    addAll(int index, Collection<? extends E> 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),但不可修改。

    相关文章

      网友评论

        本文标题:JAVA基础知识之ArrayList

        本文链接:https://www.haomeiwen.com/subject/ijxqzltx.html