美文网首页
List的实现类集合

List的实现类集合

作者: Hoffnung_8164 | 来源:发表于2020-04-20 21:26 被阅读0次

集合:

    概念:也叫容器,理解为存储数据的。动态的存储多个对象。——元素Element

       动态:集合的大小随着存储的数据的个数而改变。

        对象:集合中存储的都是引用类型的数据。(对象的地址)

    集合的结构:

        父接口:Collection,关于集合的最基本的规则。

                    add()-->boolean,向集合中添加元素。

                    remove()-->boolean,从集合中删除指定的元素。

                    size()-->int,获取集合的长度。集合中存储的元素的个数

                    iterator()-->Iterator,获取该集合上的迭代器对象,用于遍历集合,获取里面的每一个元素。

                    contains()-->是否包含指定的元素。

                    clear()-->清空集合

                    addAll(),removeAll(),toArray().....

    子接口:List

            特点:

                1、有序,有下标,有位置。

                2、允许重复的元素

        新增的方法:大多和下标有关

                add(index,E)-->允许在指定的位置添加新增的元素。

                remove(index)-->根据下标删除元素

                get(index)-->获取元素

                set(index,E)--->根据下标,替换元素

                indexOf()-->搜索指定的元素,返回下标,如果元素没有,返回-1。

                subList(fromIndex,toIndex)-->截取子容器

                iterator()

                listIterator()

    泛型:

            概念:广泛的类型。指定一个类型。

            作用:存入到集合中的元素,Object类类型,自动向上转型。当获取的时候,需要手动的向下转型,降低效率,容易出错。使用泛型,指定集合中存储的元素的数据类型,保护容器中数据类型的安全。

                String-->Object,Person-->Object ...

                String-->String,Person-->Person

        使用:创建集合的时候,使用泛型来指明该容器能够存储的数据类型。

            语法格式:

                   容器<数据类型> 容器对象 = new 容器<>();

            注意点:

                    集合中的泛型:限于引用类型,基本类型需要写成对应的包装类类型。

            迭代器:

                用途:专门用于遍历集合中每一个元素的。

                工作原理:

                    step1:先获取Collection上获取迭代器对象:iterator()--->Iterator对象:it

                    step2:调用迭代器hasNext(),用于判断迭代器是否有下一个元素可以迭代获取。

                                boolean:true,false

                    step3:调用next(),获取下一个元素。迭代器对象会向后移动一个位置。

    Iterator接口中:

                hasNext()-->是否有下一个元素。

                next()-->获取下一个元素对象,同时迭代器对象向后移动一个位置

                remove()-->移除,已经迭代出的最后一个元素。也就是移出了迭代器左侧的元素。

注意点:

    1、当迭代器进行迭代工作的时候,不能操作集合本身进行添加或删除工作;如果想删除元素,使用迭代器子代的remove()进行删除。

    2、迭代器工作的时候:先调用hasNext(),判断是否有可以迭代的元素,调用next()。否则异常:NoSuchElementException。

集合的遍历迭代:

    1、Collection集合:没有下标

        A:Iterator迭代器来遍历

        B:for-each,增强for循环

    2、List集合:有下标

        A:Iterator迭代器来遍历

        B:for-each,增强for循环

        C:普通for循环,结合get(index)-->E

        D:ListIterator迭代器也能遍历。

2.1、ArrayList集合

    ArrayList集合,底层实现:采用数组的结构实现的。(最大的特点:内存连续)。

    也会叫做变长数组。

        优点:遍历集合中的元素,效率很高

        缺点:更改集合中的元素,效率相对低。

2.2、LinkedList集合

    LinkedList集合:底层实现:采用双向链表的结构实现。

            优点:更改集合中的元素,效率很高。

            缺点:遍历集合中的元素,效率相对低。

        queue:队伍,队列,行列

            生活中买电影票,排队

            生活中买火车票,排队

deque:double -ended queue,双端队列

LinkedList实现类,区别于ArrayList,除了实现List接口,还实现了Deque接口。

LinkedList实现类:

    实现的接口:

        List接口----------------------------------->Collection

        Deque(双端队列)接口----->Queue(队列)接口------>Collection

    模拟栈的结构:后进先出(LIFO),栈顶元素,

            push(),压栈,入栈,pop(),弹栈,出栈

    模拟队列的结构:先进先出(FIFO),队头元素

        offer(),poll()

栈的结构特点:

队列的结构特点:

对比ArrayList,LinkedList,Vector实现类

    A:ArrayList,底层采用数组结构的实现的。(内存中连续空间)。jdk1.2

        只实现了List接口,功能都是List接口中规定的。

          优缺点:

                优点:遍历访问元素,效率很高

                缺点:插入或删除元素,效率相对低。

    B:LinkedList,底层采用双向链表结构实现的。(元素在内存中不挨着,元素之间的指向)。jdk1.2

        实现了List接口的同时,还实现了Deque接口,所以有这两个接口中的功能。

        优缺点:

                优点:插入或删除元素,效率很高。

                缺点:遍历访问元素,效率相对低。

        注意点:

                如果一个集合,频繁的添加或删除元素,建议选择LinkedList。

                如果一个集合,绝大多数的操作就是遍历查询,建议选择ArrayList。

                如果要模拟栈,队列等结构,建议选择LinkedList。

    C:Vector,是ArrayList的前身。也是数组的结构。古老的类。从jdk1.0的版本就有了。

        线程安全,效率低,后来被ArrayList替代了。

        ArrayList和LinkedList都是线程不安全的,效率高。Collections工具类,可以获取线程安全的集合。

相关文章

  • Collection、迭代器

    Collection单列集合类的根接口 List如果实现了List接口的集合类,那么该集合类具备的特点: 有序、 ...

  • 身为一个合格的java开发,这些java集合的知识你得知道,写的

    数据结构 数组 队列 链表 二叉树 集合 Collection List集合 List集合接口**的实现类(1) ...

  • 从屌丝到架构师的飞越(集合篇)-List

    一.介绍 List集合包括JavaList接口以及List接口的所有实现类.List集合中的元素允许重复,各元素的...

  • Java集合

    Java中的集合有两类:一类是Collection接口集合,实现有List和Set;还有一类是Map接口集合,实现...

  • 2018-08-08

    java集合类的底层实现 LinkedList底层实现和原理 LinkedList类是List接口的实现类,它是一...

  • 2019-10-08集合

    集合:Collection 单例集合的根接口 List 如果是实现了List接口的集合类,具备的特点:有序,可重复...

  • kotlin中的集合

    集合Java中常用的集合主要是List、Set和Map接口,List的实现类是ArrayList和LinkedLi...

  • Java集合

    List集合 ArrayList集合 1.ArrayList是List接口的一个实现类,它是程序中最常见的一种集合...

  • 集合面试总结

    1. 你所知道的集合类都有哪些?主要方法 最常用的集合类是List 和 Map。List的具体实现包括Ar...

  • List的实现类集合

    集合: 概念:也叫容器,理解为存储数据的。动态的存储多个对象。——元素Element 动态:集合的大小随着存储...

网友评论

      本文标题:List的实现类集合

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