当前位置: 首页 > news >正文

.net 网站地图合肥最好的网站建设

.net 网站地图,合肥最好的网站建设,海口省建设厅网站,建设银行公司官网这里写目录标题 简介源码解读基础变量构造函数LinkedList()LinkedList(Collection<? extends E> c) 总结 简介 LinkedList 是对 Java 集合框架中 List 接口的一种具体实现&#xff0c;归属于线性数据结构的范畴。其核心内部结构是通过双向链表&#xff08;double-linke…

这里写目录标题

    • 简介
    • 源码解读
      • 基础变量
      • 构造函数
        • LinkedList()
        • LinkedList(Collection<? extends E> c)
    • 总结

简介

LinkedList 是对 Java 集合框架中 List 接口的一种具体实现,归属于线性数据结构的范畴。其核心内部结构是通过双向链表(double-linked list)来实现的,这使得它在元素插入、删除操作上具备较高的效率,尤其是在列表的首尾进行操作时。

相较于数组实现的列表,如 ArrayList,LinkedList 在非索引访问或遍历操作上可能效率较低。

LinkedList 类继承自 AbstractList 抽象类,并且实现了 List 接口以及标记接口 Serializable。通过实现 Serializable 接口,ArrayList 集合的实例能够支持序列化过程,从而允许对象的状态被转换成可以存储或传输的形式,用于网络传输或保存到文件等。


源码解读

基础变量

// 记录元素个数
transient int size = 0;// 当前节点的前一个结点
transient Node<E> first;// 当前节点的后一个结点
transient Node<E> last;// 初始化结点
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;}
}

构造函数

LinkedList()

构造一个空链表。

public LinkedList() {}
LinkedList(Collection<? extends E> c)

传入一个 Collection 的子类集合,将元素存储到 LinkedList。

public LinkedList(Collection<? extends E> c) {this();addAll(c);
}
  1. addAll©
public boolean addAll(Collection<? extends E> c) {// size:链表长度,这里作为开始添加新元素的位置return addAll(size, c);
}
  1. addAll(size, c)
public boolean addAll(int index, Collection<? extends E> c) {// 判断 index 是否超出范围(index >= 0 && index <= size)checkPositionIndex(index);// 将集合转为数组Object[] a = c.toArray();int numNew = a.length;    // 数组长度if (numNew == 0)return false;// 初始化前结点、后结点Node<E> pred, succ;// 如果index == size,说明实在链表的末尾添加,后继节点为null,前驱节点为最后一个节点if (index == size) {succ = null;pred = last;} else {// 否则,找到指定索引位置的节点,作为后继节点,并找到其前驱节点succ = node(index);pred = succ.prev;}// 遍历数组a,将每个元素添加到链表中for (Object o : a) {@SuppressWarnings("unchecked") E e = (E) o;// 创建新节点,前驱为pred,元素为e,后继为null(暂时)Node<E> newNode = new Node<>(pred, e, null);// 如果前驱节点为null,说明新节点是第一个节点if (pred == null)first = newNode;// 否则,将新节点链接到前驱节点的后面elsepred.next = newNode;pred = newNode;}// 如果后继节点为null,说明是在链表末尾添加,更新最后一个节点为predif (succ == null) {last = pred;} // 否则,将新添加的最后一个节点链接到原来的后继节点else {pred.next = succ;succ.prev = pred;}// 更新链表的大小size += numNew;modCount++;  // 修改次数return true;
}

总结

数据结构底层结构线程安全执行效率
ArrayList可变数组 Object[] elementData线程不同步、不安全查询效率搞、增删效率低
LinkedList双向链表线程不同步、不安全增删效率搞、查询效率低
http://www.yayakq.cn/news/964330/

相关文章:

  • 揭阳网站制作平台公司名称注册名字
  • 成都网站建设低价软件开发费用计入什么科目
  • 电子商务网站技术微平台公众号
  • 网站的维护和建设在某网站被骗钱该怎么做
  • 做网站时候如果添加微信代码如何给别人做网站赚钱
  • 晋中住房保障和城乡建设局网站番禺区手机版网站建设
  • 建设银行官方网站 诚聘英才wordpress生成xml地图
  • 重庆企业网站建设公司百度论坛
  • 网站前端是什么福州微网站开发
  • 建设网站那个公司好网站开发 题目
  • 链家网站开发租用域名与空间的网站并会使用
  • 如何注册网站域名wordpress域名展示
  • 灵感网站网站备案图标
  • 建设网站域名备案查询网站推广维护
  • 广东网站设计与建设旅游景点介绍网页设计模板
  • 昊杰南宫网站建设海南门户网站开发公司
  • 软件开发设计制作网站下载西安做网站 好运网络
  • 网站换域名做网站要求的分辨率是什么意思
  • 广东建设工程交易中心网站巴基斯坦外贸平台
  • 高质量视频素材网站电影网站织梦模版
  • 松江做网站费用二元期权网站建设
  • 多肉建设网站前的市场分析万远翔网站建设
  • 网站备案模板wordpress批量上传商品
  • 网站后台默认用户名cms监控手机客户端
  • 建筑业资质查询网站wordpress 回复显示不出来
  • 给千图网等网站做设计赚钱吗昆明网站建设开发制作
  • 官网招聘和招聘网站宁波seo网络推广软件系统
  • 雅茂道网站建设wordpress在线支付插件
  • 网站如何在百度上做推广方案网站流程图设计
  • 我想找网站帮忙做宣传最好的网站模板网站