本章目标
掌握LinkedList与List接口的关系
掌握Queue接口的作用
LinkedList子类与Queue接口
LinkedList表示的是一个链表的操作类,此类定义如下:
——public class LinkedList<E> extends AbstractSequentialList<E>implements List<E>, Queue<E>, Cloneable, Serializable
Queue接口是Collection的子接口,此接口定义如下:
——public interface Queue<E> extends Collection<E>
Queue接口定义的方法
LinkedList中操作链表的部分方法
实例操作一:在链表的开头和结尾增加数据
import java.util.LinkedList; public class LinkedListDemo01 { public static void main(String[] args) { LinkedList<String> link = new LinkedList<String>(); link.add("A");//向链表中增加数据 link.add("B");//向链表中增加数据 link.add("C");//向链表中增加数据 System.out.println("初始化链表:"+link);//输出链表内容,调用 toString() link.addFirst("X");//在链表的表头增加内容 link.addLast("Y");//在链表的表头增加内容 System.out.println("增加头和尾之后的链表:"+link);//输出链表内容,调用 toString(): } /* 结果: * 初始化链表:[A, B, C] * 增加头和尾之后的链表:[X, A, B, C, Y] * */ }
实例操作二:找到链表头
import java.util.LinkedList; public class LinkedListDemo02 { public static void main(String[] args) { LinkedList<String> link = new LinkedList<String>(); link.add("A");//向链表中增加数据 link.add("B");//向链表中增加数据 link.add("C");//向链表中增加数据 System.out.println("1-1、element() 方法找到表头:"+link.element()); System.out.println("1-2、找完之后的链表内容:"+link); System.out.println("2-1、peek() 方法找到表头:"+link.peek()); System.out.println("2-2、找完之后的链表内容:"+link); System.out.println("3-1、poll()方法找到表头"+link.poll()); System.out.println("3-2、找完之后的链表内容:"+link); } /* 结果: * 1-1、element() 方法找到表头:A * 1-2、找完之后的链表内容:[A, B, C] * 2-1、peek() 方法找到表头:A * 2-2、找完之后的链表内容:[A, B, C] * 3-1、poll()方法找到表头A * 3-2、找完之后的链表内容:[B, C] * */ }
实例操作三:以先进先出的方式取出全部的数据
import java.util.LinkedList; public class LinkedListDemo03 { public static void main(String[] args) { LinkedList<String> link = new LinkedList<String>(); link.add("A");//向链表中增加数据 link.add("B");//向链表中增加数据 link.add("C");//向链表中增加数据 System.out.print("以 FIFO 的方式输出:");//信息输出 for(int i=0; i<link.size()+2; i++){//循环输出 System.out.print(link.poll()+"、");//取得表头 } } /* 结果: * 以 FIFO 的方式输出:A、B、C、 * */ }
相关推荐
LinkedList类位于java.util包中,它还实现了Deque(双端队列)接口,提供了额外的功能。 LinkedList的源代码包含了许多重要的方法和内部类。首先,我们来看它的主要属性: 1. **header**: 这是一个内部静态节点类...
接下来,我们创建LinkedList类,它包含一些基本操作,如添加元素、删除元素、查找元素等。LinkedList类需要维护一个头节点(head),表示链表的起始位置: ```javascript class LinkedList { constructor() { ...
链表类LinkedList的完全c++实现,根据数据结构与算法课堂总结。
LinkedLIst.cpp
Java中的LinkedList类是Java集合框架的一部分,属于List接口的实现,它提供了线性数据结构的能力,同时保持了链表的特点。LinkedList不同于ArrayList,后者在内存中是连续存储的,而LinkedList则是通过节点对象链接...
Java LinkedList类是Java集合框架的一部分,它位于`java.util`包中,主要用于创建和操作链表数据结构。链表是一种动态数据结构,其中元素不是在内存中连续存储的,而是通过节点之间的引用链接起来。LinkedList类实现...
本文将详细讲解如何使用Java中的LinkedList类来模拟这两种数据结构,并实现其基本操作。 堆栈(Stack)是一种后进先出(LIFO, Last In First Out)的数据结构,它遵循“先进后出”的原则。常见的堆栈操作有压栈...
LinkedList 的节点(Node)是 LinkedList 类的私有静态内部类,定义如下: ```java private static class Node<E> { E item; LinkedList.Node<E> next; LinkedList.Node<E> prev; Node(LinkedList.Node<E> ...
接着创建LinkedList类,包含添加、删除、查找和遍历等方法。以下是一个简单的LinkedList实现: ```javascript // 定义Node类 class Node { constructor(data, next = null) { this.data = data; this.next = ...
最后,`LinkedList`文件可能是实现了链表类的主体,该类封装了链表操作并提供了一种面向对象的方式来使用链表。这个类可能包含了构造函数、析构函数,以及在`List.h`中声明的方法的实现。例如,链表类的构造函数可能...
2. **LinkedList类**:实现了链表的基本操作,如`add()`, `remove()`, `get()`, `size()`等,这些方法可能都进行了泛型处理以适应不同的数据类型。 3. **泛型方法**:使用泛型声明的方法,确保插入和取出的元素与...
LinkedList类中有三个重要的成员变量:size、first和last。size是用transient修饰的,意味着它不会被序列化,它记录了列表中元素的数量。first和last分别指向链表的头节点和尾节点。这种设计使得LinkedList在头尾...
首先,LinkedList类位于Java的`java.util`包中,它实现了List接口,允许我们存储和操作一系列元素。LinkedList内部维护了一个双向链表,每个元素都是一个Node对象,包含元素值以及指向前后节点的引用。由于...
Stack类通过MutableList作为基础,实现了基本的栈操作,而LinkedList类通过定义Node类和维护头结点,实现了链式存储的动态数据结构。这些实现为开发者提供了灵活的工具,可以有效地处理和组织数据,适用于各种实际...
Java LinkedList集合功能实例解析 Java LinkedList集合是Java集合框架中的一种重要实现,基于链表数据结构,提供了...* Java SDK Documentation: LinkedList类 * Java集合框架官方文档 * 《Java精华卷》-集合框架篇
LinkedList类在Java中实现了List接口,提供了链表的实现,根据文件内容,我们可以总结出以下几个关键知识点: 1. LinkedList内部通过维护两个指针first和last来分别指向链表的第一个节点和最后一个节点。当链表为...
一个简单的链表(LinkedList)数据结构。链表是一种常见的数据结构...LinkedList 类表示整个链表,包含链表的头节点(head)和一些基本操作,如向链表末尾添加新节点(append)和打印链表中的所有元素(print_list)。
**LinkedList类** `LinkedList`是基于双向链表实现的List,每个节点包含元素和指向前后节点的引用。因此,插入和删除操作在任意位置都相对高效,但随机访问性能较差,因为需要从头开始遍历链表。 **源码分析** 深入...
LinkedList类位于java.util包下,它是List接口的一个实现,同时也实现了Deque(双端队列)接口,因此,LinkedList不仅可以作为列表使用,还可以作为栈或者队列。 LinkedList与ArrayList的主要区别在于其底层数据...