LinkedList入门教程

article/2025/9/11 1:01:37

目录

  • LinkedList是什么?
  • LinkedList的使用
    • 创建对象
    • 添加元素
    • 删除元素
    • 获取长度
    • 排序
  • 常用方法

LinkedList是什么?

LinkedList是一种数据结构,它由节点组成,每个节点包含一个值和一个指向下一个节点的指针。这种数据结构非常适合插入和删除操作,因为它们只涉及相邻节点的更改。LinkedList常用于实现栈、队列和线性列表等数据结构。在Java中,LinkedList是一个类,实现了List接口,可用于在链表中存储和操作对象。

LinkedList

LinkedList的使用

创建对象

使用LinkedList类的语法格式如下:

import java.util.LinkedList;LinkedList<String> list = new LinkedList<String>();

在上述代码中,我们首先通过 import 语句引入了 java.util 包中的 LinkedList 类。然后我们声明了一个名为 list 的 LinkedList 对象,这个对象可以存储字符串类型的数据。

如果需要存储其他类型的数据,只需要将 String 替换成相应的数据类型即可。例如,如果要存储整数类型的数据,代码如下:

LinkedList<Integer> list = new LinkedList<Integer>();

添加元素

下面是Java语言的示例代码,演示如何向LinkedList中添加元素

import java.util.LinkedList;public class Example {public static void main(String[] args) {LinkedList<String> linkedList = new LinkedList<>();// 添加元素linkedList.add("Java");linkedList.add("Python");linkedList.add("C++");// 输出LinkedList中所有元素System.out.println(linkedList);// 在指定位置添加元素linkedList.add(1, "Ruby");// 输出LinkedList中所有元素System.out.println(linkedList);}
}

在上面的代码示例中,首先创建了一个空的LinkedList对象,然后通过调用add()方法,向其添加了三个元素。接着调用 System.out.println(linkedList);语句,输出LinkedList中所有元素,结果为:

[Java, Python, C++]

接着调用linkedList.add(1, “Ruby”);,在LinkedList的第二个位置(索引值为1)添加了一个新的元素"Ruby"。最后再次调用System.out.println(linkedList);输出新的LinkedList中所有元素,结果为:

[Java, Ruby, Python, C++]

删除元素

可以使用LinkedList类中的remove()方法来删除元素。该方法有两种用法:

  1. remove(int index): 删除指定index位置上的元素。
  2. remove(Object obj): 删除第一个找到的obj对象。

示例代码:

import java.util.LinkedList;public class Main {public static void main(String[] args) {LinkedList<String> list = new LinkedList<>();list.add("apple");list.add("banana");list.add("orange");System.out.println(list);// remove the element at index 1list.remove(1);System.out.println(list);// remove the first occurrence of "orange"list.remove("orange");System.out.println(list);}
}

输出:

[apple, banana, orange]
[apple, orange]
[apple]

注意:当使用remove(int index)方法时,如果给定的index超出了链表的范围,将会抛出IndexOutOfBoundsException异常。

获取长度

可以通过LinkedList的size()方法获取LinkedList的长度,如下所示:

LinkedList list = new LinkedList();
int length = list.size();

以上代码将创建一个空的LinkedList,然后使用size()方法获取该LinkedList的长度,将其存储在一个整数变量length中。

如果LinkedList已经包含一些元素,则可以直接使用size()方法获取其长度。例如:

LinkedList list = new LinkedList();
list.add("A");
list.add("B");
list.add("C");
int length = list.size();

以上代码将创建一个LinkedList,向其中添加三个字符串元素,然后使用size()方法获取该LinkedList的长度,将其存储在一个整数变量length中。

排序

Java LinkedList排序的代码示例:

import java.util.Collections;
import java.util.LinkedList;public class Main {public static void main(String[] args) {LinkedList<Integer> list = new LinkedList<>();list.add(4);list.add(2);list.add(8);list.add(5);Collections.sort(list); // 对LinkedList进行排序System.out.println(list); // 输出排序结果 [2, 4, 5, 8]}
}

在上述示例中,我们首先创建了一个LinkedList,并向其添加了一些Integer类型的元素。然后,我们调用Collections.sort()方法对该LinkedList进行排序,最后输出排序结果。可以看到,排序结果是升序排列的。

如果要对LinkedList进行降序排列,则可以使用Collections.reverseOrder()方法,如下所示:

import java.util.Collections;
import java.util.LinkedList;public class Main {public static void main(String[] args) {LinkedList<Integer> list = new LinkedList<>();list.add(4);list.add(2);list.add(8);list.add(5);Collections.sort(list, Collections.reverseOrder()); // 对LinkedList进行降序排序System.out.println(list); // 输出排序结果 [8, 5, 4, 2]}
}

在这个示例中,我们将Collections.sort()方法的第二个参数设置为Collections.reverseOrder(),以对LinkedList进行降序排列。最后输出排序结果,可以看到结果是降序排列的。

常用方法

  1. add():在链表的末尾添加一个元素。
  2. addFirst(E element): 在链表的头部添加一个元素。
  3. addLast(E element): 在链表的尾部添加一个元素。
  4. add(int index, E element): 在指定的位置插入一个元素。
  5. removeFirst(): 移除链表的第一个元素。
  6. removeLast(): 移除链表的最后一个元素。
  7. remove(int index): 移除指定位置的元素。
  8. get(int index): 获取指定位置的元素。
  9. set(int index, E element): 将指定位置的元素替换为新元素。
  10. size(): 返回链表中元素的数量
  11. clear(): 移除链表中所有的元素
  12. indexOf():返回元素第一次出现的索引位置,如果没有则返回-1。
  13. isEmpty(): 判断链表是否为空。
  14. contains():判断链表中是否包含指定元素。
  15. peek(): 获取链表的头部元素,但不会移除它。
  16. poll(): 移除链表的头部元素,并返回该元素。
  17. offer(E element): 将元素添加到链表的末尾,相当于addLast方法。
  18. iterator(): 返回一个迭代器,可以用来遍历链表中的元素。

http://chatgpt.dhexx.cn/article/iJJaYPpf.shtml

相关文章

Java--LinkedList

LinkedList的特点 LinkedList是基于双向链表实现的有序集合&#xff1b;LinkedList是非线程安全的&#xff1b;LinkedList中的元素可重复&#xff0c;可为null值&#xff1b;LinkedList可实现快速的插入和删除操作&#xff0c;与ArrayList相比&#xff0c;LinkedList的增删操作…

LinkedList 基本使用

文章目录 1. LinkedList 简介2. LinkedList 底层操作机制3. LinkedList 源码分析4. LinkedList 增删改查案例5. ArrayList和LinkedList比较 1. LinkedList 简介 LinkedList 底层实现了 双向链表和双端队列 特点可以添加任意元素(元素可以重复)&#xff0c;包括null线程不安全&…

java linkedlist poll_java之LinkedList详细介绍

1 LinkedList介绍 LinkedList简介 LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。 LinkedList 实现 List 接口&#xff0c;能对它进行队列操作。 LinkedList 实现 Deque 接口&#xff0c;即能将LinkedList当作双端队…

LinkedList简介

LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。 LinkedList 实现 List 接口&#xff0c;能对它进行队列操作。 LinkedList 实现 Deque 接口&#xff0c;即能将LinkedList当作双端队列使用。 LinkedList 实现了Clo…

LinkedList特点

聊一聊LinkedList的特点吧~&#xff08;以下都是基于jdk1.8&#xff09; 继承树 LinkedList的继承树如下图&#xff1a; 特点 &#xff08;1&#xff09;允许null值 &#xff08;2&#xff09;内部以双向链表的形式来保存集合中的元素 /*** Pointer to first node.* Inva…

数据结构之链表(LinkedList详解)

文章目录 一、什么是LinkedList&#xff1f;二、LinkedList的使用三、LinkedList自实现四、链表实现逆序打印的两种方式&#xff08;递归和非递归&#xff09; 五、ArrayList和LinkedList有什么区别&#xff1f; 一、什么是LinkedList&#xff1f; LinkedList的底层是 双向链表…

LinkedList用法详解

一、LinkedList简单介绍 LinkedList是List接口的实现类&#xff0c;因此也实现了List的方法。但LinkedList是采用链表结构的方式来实现List接口的&#xff0c;因此在进 行insert 和remove动作时效率要比ArrayList高。 二、LinkedList的用法介绍 1、add和push 通过这两种方法均…

Java集合类——LinkedList(单链表及双链表)

一&#xff0c;ArrayList的缺陷 1.空间浪费 在之前的博客中&#xff0c;我利用源码详细的讲解了ArrayList这个集合类&#xff08;尤其是扩容机制&#xff09;&#xff0c;可以知道ArrayList的底层主要是一个动态的可变数组&#xff0c;容量满的时候需要进行1.5倍扩容。但是我…

java学习之LinkedList(链表)

LinkedList&#xff1a;一种线性表&#xff0c;但不按照线性顺序存储数据&#xff08;实际上为链表&#xff09;。 链表分为单向链表和双向链表&#xff0c;实际应当还有循环链表。 单向链表&#xff1a;将一个区域分成两部分&#xff0c;分别为节点区域和数据域。 如下图所…

LinkedList和ArrayList对比各有什么优势?

一、LinkedList的概述 1. LinkedList是双向链表实现的List 2. LinkedList是非线程安全的 3. LinkedList元素允许为null&#xff0c;允许重复元素 4. LinkedList是基于链表实现的&#xff0c;因此插入删除效率高&#xff0c;查找效率低(虽然有一个加速动作) 5. LinkedList是…

LinkedList详解

文章目录 介绍继承体系 LinkedLists实现底层数组结构构造函数getFirst(),getLast()removeFirest(),removeLast(),remove(e),remove(index)删除head元素删除last元素add()addAll()clear()查找操作遍历 介绍 LinkedList同时实现了List接口和Deque对口&#xff0c;也就是收它既可…

Chrome被百度网页劫持

Chrome被百度劫持的解决办法 浏览器的运行太慢了&#xff0c;就想试试谷歌的浏览器&#xff0c;但是每次打开的都是百度的界面&#xff0c;明显就是被劫持了&#xff0c; 看了网上的好多方法都没有什么明显的效果 问题 在使用Chrome浏览器打开后直接弹出一个百度的界面这看着就…

网页被劫持怎么修复?主页被劫持修复方法

电脑的浏览器被劫持了应该怎么解决&#xff1f;小编今天就来教大家解决电脑浏览器自动跳转到一个网页中的问题。 方法步骤 1.随着网络的兴起&#xff0c;更多的小伙伴享受到网络带来的便利生活&#xff0c;其中上网浏览就是非常受欢迎的一个功能&#xff0c;但是很多不法分子看…

Google Chrome主页被iduba劫持解决方法

今天用电脑的时候发现google的主页被改成了iduba的主页&#xff0c;烦的一比&#xff0c;看了好久才解决1.查看chrome://version 在命令行处会发现带有iduba的网站&#xff0c;我这里解决了&#xff0c;就没有了 2.点开google快捷方式的属性进行修改 将命令行中的代码全部复制…

浏览器被劫持怎么解决?关于浏览器被劫持主页的处理方法

背景: 上个月重做了win10系统,系统激活过程中没有出现任何问题。重装office套装,使用暴风激活下载地址: (http://win.shibojiaa.cn/baofeng/)激活office套装后,发现所有浏览器主页被劫持。打开任何一个浏览器地址栏中显示:(http://uj7.gndh555.top/)随后跳转hao123。…

Microsoft edge 主页被劫持的处理办法

最根本的办法&#xff0c;如果是任务栏固定打开后发现主页被劫持&#xff0c;应该是弄明白任务栏的链接是来自电脑的开始页面还是桌面的快捷方式。 如果是开始界面应用固定于任务栏&#xff0c;那么找到开始界面的Microsoft edge&#xff0c;右键然后找到所在文件夹。 找到开始…

浏览器主页被劫持,跳转hao123解决办法!

劫 持 指 南 前戏-疑难杂症小妙招 当打开电脑准备划水时&#xff0c;结果一打开浏览器&#xff0c;就发现它自动打开一个新的链接&#xff0c;紧接着又跳转到一个特定网页上去了&#xff0c;大家肯定心里那个气啊&#xff0c;打开百度一顿搜索&#xff0c;试了各种方法都不行…

百度主页被“/?tn=88093251_85_hao_pg“劫持的一种解决办法

前言 在闲暇之余换了个系统&#xff0c;为了方便使用了在线的小白一键装机安装的win10专业版&#xff0c;先抛开携带的各种垃圾软件不说&#xff0c;最不爽的还是主页无论如何修改都被百度劫持。 内容 尝试了网上各种解决办法&#xff0c;其中包括但不限于&#xff1a; 下…

Chrome主页被劫持怎么破

之前遇到Chrome被2345劫持了&#xff0c;导致的结果是每天初次打开Chrome都会进入2345的流氓主页&#xff0c;尝试了若干解决办法&#xff0c;最终得以解决。现简要记录一下所尝试过的方法以及解决过程&#xff0c;以下所涉及到的任何一种能够方法都有可能导致Chrome浏览器的劫…

教你解决浏览器被360劫持篡改主页的麻烦

前言 相信很多的小伙伴都遇到一个问题&#xff0c;就是好端端的&#xff0c;打开自己的edge或者Chrome&#xff0c;突然发现自己的主页变成了这样&#xff08;下图&#xff09; 不得不说&#xff0c;这个看得人真的不适。&#xff08;晕&#x1f635;&#xff09;相信大部分人还…