Collection子接口—List接口

编程入门 行业动态 更新时间:2024-10-16 00:20:22

Collection子<a href=https://www.elefans.com/category/jswz/34/1771365.html style=接口—List接口"/>

Collection子接口—List接口

Java中数组存储数据具有局限性,我们通常用List替代数组
1.List集合类中元素有序,且可重复(有序:按添加的顺序)
2.ArrayList、 LinkedList、Vector三种实现类

ArrayList.、LinkedList.、Vector的使用:
ArrayList的源码分析:
①jdk.7情况下:

ArrayList list=new ArrayList();//底层创建了长度为10的object[]数组list.add (123) //elementDate(0]= new Integer (123);...list.add (11);// 如果此次添加导致数组容量不够,则扩容。扩容为原来的1.5倍,并将数据复制到新的数组中//开发中建议使用带参构造器(可指定长度)Arruy List list = new ArrayList (int capacity);

②jdk8情况下:

Array List list =new ArrayList()://底层object [] JelementDate.初始化为{};并没有创建数组。list.add(123);//第一次调用add()时,底层才创建了长度为10的数组,并将123添加进数组中。//后续的添加和扩容与jdk7相同

小结:idk7中的创建类似于单例的饿汉式,而jdk8中的创建类似于懒汉式。延迟了数组的创建,节省内存。

LinkedList的源码分析:(双向链表)ffirst listI last

Linked List list=new Linked List();//内部声明了Node类型的firse和last属性,默认值为null.
list.add(123);//将123封装到Node中,创建了Node对象

Vector的源码分析
jdk7和8都创建了长度为10的数组,在扩容方面,默认扩容为原来的数组的2倍。

ArrayList::list的主要实现类,线程不安全,效率高。

Linked list:对于频繁的插入、删除比Arraylist效率高

Vector: list的古老实现类、线程安全,效率低。

 

更多推荐

Collection子接口—List接口

本文发布于:2023-11-16 14:47:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1625340.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:接口   Collection   List

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!