List集合

List集合属于Collection接口中的
List集合特点:存储单例数据,存储有序数据,并且可重复。

List接口中常见的三种实现类

  1. ArrayList
  2. LinkedList
  3. Vector

三者的区别
ArrayList :出自jdk 1.2 , 线程不安全,效率高,底层使用Object [ ] 数组 ,查询速度快 。
jdk 7 中 ArrayList 调用空参构造器,底层是创建了长度为 10 的Object [ ] 数组 ,如果当插入超过了10 默认扩容为原来的1.5倍,同时将原有数组中的数据赋值到新的数组当中。
jdk 8 中 ArrayList 调用空参构造不会立即创建数组,当第一次使用add操作的时候底层才创建了长度为 10 的Object [ ] 数组 ,并吧数据存放进去,默认扩容为原来的1.5倍,同时将原有数组中的数据赋值到新的数组当中。

LinkedList :出自jdk 1.2 ,线程不安全,底层使用双向链表存储,对于删除,插入修改等操作要快。
jdk 7 和 8 ,底层是双向链表,LinkedList中两个重要的属性,first,和last,分别指向首节点和尾节点。每个节点(Node类型) 里面又有三个属性item、next、prev,分别指向当前元素、下一个元素、上一个元素、最终实现手拉手的结构

  private static class Node<E> {
        E item;
        Node<E> next;
        Node<E> prev;

        Node(Node<E> prev, E element, Node<E> next) {
            this.item = element;
            this.next = next;
            this.prev = prev;
        }
    }

Vector :出自jdk 1.0, 线程安全,效率低,底层使用Object [ ] 数组
调用空参构造器创建的是10的Object [ ] 数组 ,扩容为原来的2倍

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值