•  2、jdk1.8中ArrayList的变化
    
  •      ArrayList list = new ArrayList();//底层Object[] elementData初始化为{},并没有创建长度为10的数组
    
  •      list.add(123);//第一次调用add()时,底层才创建了长度为10的数组,并将数字123添加到elementData[0]
    
  •      ...
    
  •      后续的添加扩容操作同jdk1.7
    
  •  3、小结:jdk1.7中的ArrayList的对象创建类似于单例的饿汉式,而jdk1.8中的ArrayList的对象创建类似于大力的懒汉式,
    
  •      延迟了数组的创建,节省内存。
    

1.2、LinkList


在这里插入图片描述

LinkList的源码分析:

LinkList list = new LinkList();内部声明了Node的first和last属性,默认值为null

list.add(123);//将123封装到Node,创建了Node对象

其中,Node定义为:体现了LinkList的双向链表的说法

private static class Node{

E item;

Node next;

Node prev;

Node(Node prev, E element, Node next){

this.item = element;

this.next = next;

this.prev = prev;

在这里插入图片描述

1.3、List集合是有序可重复的


在这里插入图片描述

2、List接口中的方法

===========================================================================

List接口中的常用方法,Collection中没有的。

在这里插入图片描述

2.1、add(int index,Object ele)


在这里插入图片描述

2.2、addAll(int index,Collection ele)


从index个位置开始,将集合list1中的所有元素放置集合list中

在这里插入图片描述

2.2、get(int index):获取到第index位置的元素


在这里插入图片描述

2.3、indexOf(Object obj):查找元素在集合中第一次出现的位置,返回索引值,如果不存在该元素返回-1


在这里插入图片描述

2.4、lastIndexOf(Object obj):查找元素在集合末次出现的位置,返回索引值,如果不存在该元素返回-1


在这里插入图片描述

2.5、Object remove(int index):删除指定位置的元素,并返回此元素


在这里插入图片描述

2.6、set(int index,Object ele):设置指定index元素为ele


在这里插入图片描述

2.7、List subList(index fromIndex,int toIndex):返回formIndex到ToIndex位置左闭右开区间的元素


在这里插入图片描述

3、List集合的遍历方法

============================================================================

在这里插入图片描述

在这里插入图片描述

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

最后

以添加下面V无偿领取!(备注Java)**
[外链图片转存中…(img-L4mR61UG-1711050742637)]

最后

[外链图片转存中…(img-mkHeNAiL-1711050742638)]

[外链图片转存中…(img-BCHEO3OB-1711050742639)]

[外链图片转存中…(img-BSqfqIpC-1711050742639)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐