1.LinkedList 的创建

 //创建一个 LinkedList 链表结构LinkedList list = new LinkedList();

2.LinkedList 的添加操作

     //追加尾部list.add("java01");//添加到头部list.addFirst("java02"); //添加到尾部list.addLast("java03");//添加到指定下标list.add(2,19);

3.LinkedList 的删除操作

     //删除指定元素list.remove("java");//删除下表为1处的元素list.remove(1);//删除头部元素list.removeFirst();//删除尾部元素list.removeLast();

4.LinkedList 的修改操作

·        //将下标为1的元素修改为100list.set(1,100);System.out.println(list);

5.LinkedList 的查询操作

     //获取链表长度int size = list.size();System.out.println(size);//判断链表是否为空boolean empty = list.isEmpty();System.out.println(empty);//判断是否有指定元素boolean b = list.contains("java01");System.out.println(b);//获取指定下标的元素Object o = list.get(1);System.out.println(o);//获取第一个元素Object first = list.getFirst()System.out.println(first);//获取最最后一个元素Object last = list.getLast();System.out.println(last);

6.LinkedList 的底层代码

             1.凡是查询源码 ,我们都是从类的构造方法入手:/*** Constructs an empty list.*/public LinkedList() {}该类的构造方法内是空的,没有任何的代码。 但是该类中有三个属性。   transient int size = 0; //索引transient Node<E> first; //第一个元素对象 transient Node<E> last; //表示最后一个元素对象。================ add的源码=====E:理解为Object类型==========================。public boolean add(E e) {linkLast(e);return true;}void linkLast(E e) {final Node<E> l = last;//上一个节点   数据  下一个节点final Node<E> newNode = new Node<>(l, e, null);last = newNode;if (l == null)first = newNode;elsel.next = newNode;size++;modCount++;}==================Node的源码 内部类=======================================   private static class Node<E> { //<E>泛型--objectE 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;}}1、==================== get(1)-----获取元素========================public E get(int index) {checkElementIndex(index); //检查index下标是否正确。return node(index).item;  //李四Node对象}========================node(index)=============================Node<E> node(int index) {//>> 位运算二进制运算 ----- size >> 1 一半的意思size/2if (index < (size >> 1)) { //前半部分Node<E> x = first; for (int i = 0; i < index; i++)x = x.next;return x;} else {  //后半部分Node<E> x = last;for (int i = size - 1; i > index; i--)x = x.prev;return x;}}

LinkedList 的创建与使用相关推荐

  1. 【Groovy】集合声明与访问 ( 使用 [] 创建 ArrayList 和 LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 )

    文章目录 一.使用 [] 创建集合 1.使用 [] 创建 ArrayList 集合 2.使用 [] 创建 LinkedList 集合 二.访问集合中的元素 1.集合赋初值 2.使用下标访问集合元素 ( ...

  2. ArrayList和LinkedList类的用法及区别

    List 是一个有序.可重复的集合,集合中每个元素都有其对应的顺序索引.List 集合允许使用重复元素,可以通过索引来访问指定位置的集合元素.List 集合默认按元素的添加顺序设置元素的索引,第一个添 ...

  3. 第1关:学习-Java集合类之List的LinkedList之特有方法的使用

    任务描述 相关知识 什么是 LinkedList集合 创建 LinkedList 集合 LinkedList 集合的方法 编程要求 测试说明 任务描述 本关任务:替换 LinkedList 集合中的首 ...

  4. PHP数据结构之——链表

    链表是一种在逻辑上连续.有序的数据存储结构(在物理存储单元上非连续非有序).在我大学的时候,学习C++的数据结构课程时,最先接触的就是链表(大学是学渣别喷...) 那么链表是怎样的一种结构呢? 用&q ...

  5. 《JAVA程序设计》第八周学习总结

    教材学习内容总结 第十五章 泛型与集合框架 泛型 1.泛型类声明: class People<E> 其中People是泛型类的名称,E是其中的泛型 2.泛型的重要目的是可以建立具有类型安全 ...

  6. 剑指Offer——Java答案

    第二章 面试需要的基础知识 数组 - 二维数组中查找 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数, ...

  7. 20165320 第十周课上测试补做

    相关知识点总结: 1.LinkedList泛型类创建一个链表对象 LinkedList<String> mylist = new LinkedList<String>(); 2 ...

  8. java面试题大合集(开发者必看三)

    前言 本文来自百度网络的一篇文章,由于没有答案,现在整理了一些比较好的回答和好的博客,可以自己扩展思路,如果大家有一下面试题的更好的答案,欢迎在评论区留言.以上全部来自网络!此外,我的微信公众号将每日 ...

  9. [转载]Java-集合框架完全解析

    在简书上看到一篇介绍Java集合框架的文章,写得挺详细的,http://www.jianshu.com/p/63e76826e852这是原文地址. 数据结构是以某种形式将数据组织在一起的集合,它不仅存 ...

最新文章

  1. 本科生如何自学机器学习?
  2. 终于知道如何才能取得HtmlEditor里的数据了
  3. 查询已有链表的hashmap_源码分析系列1:HashMap源码分析(基于JDK1.8)
  4. 如果拿到私钥的话,https会被攻击吗?
  5. 变量定义和声明的区别~~~概念上千万不要栽跟头!!!
  6. springmvc配置MappingJackson2HttpMessageConverter实现属性驼峰和下划线的转换
  7. 35岁的程序员,真的要转管理吗?
  8. 安卓手机上跑_第一名易主?看看安兔兔公布的二月份安卓手机性能跑分排行
  9. Android dalvik GC相关的属性详解
  10. C# 报错 provisional headers are shown learn more
  11. 这一年,我所阐释的Linux哲学
  12. 什么是App分发?有哪些分发平台可以选择?
  13. makefile编写总结
  14. 计算机建立excel文件,我的电脑不能新建excel!电脑excle无法使用
  15. LeetCode 到底怎么刷?GitHub 上多位大厂程序员亲测的高效刷题方式
  16. 汉寿计算机职业中专,汉寿县职业中等专业学校2021年有哪些专业
  17. Linux模拟实现僵尸进程
  18. 什么是IssS,PaaS和SaaS及其区别
  19. Spring的IOC原理以及思维导图
  20. go-cqhttp权限管理

热门文章

  1. 读取项目的根目录 部署tomcat后_tomcat配置根目录访问后,部署后第一次访问会出现tomcat的默认界面而非项目首页...
  2. 简单理解 word-wrap、word-break 和 white-space 的区别
  3. win8.1cmd常用命令提示符
  4. 五个好评不断的资源网站 绝对不能错过
  5. 【hardhat框架使用与常见编译部署的问题】
  6. “长光卫星”已完成2.5亿元天使轮融资,已是全国规模最大的民营商业卫星公司... 1
  7. 【双足机器人(1)】线性倒立摆及其运动控制(附代码)
  8. arduino(9):使用ESP8266,连接到RFID RC522 设备上,读取门禁卡上的设备信息
  9. 计算机主机跳线连接图片,电脑主板跳线怎么接 电脑主板跳线接法【图文】
  10. VLAN与单臂路由配置