Java里存在链表吗

pengjiani TOP1 1300

Java里存在链表。因为,链表是一种重要的数据结构,一种存放数据的方式,在程序设计中占有很重要的地位,Java的实现类LinkedList就可以实现链表。因此,Java里存在链表。

1、Java链表优势

Java语言比C和C++更容易实现链表结构。Java语言中的对象引用实际上是一个指针(这个指针均为概念上的意义,而非语言提供的数据类型),所以我们可以编写这样的类来实现链表中的结点。

Java中的List接口bai中有两个实现类:duArrayList和LinkedList。前者是使用数组实现,用索引来取数据是它的优势。后者是用双向链表实现,在插入和删除操作上占优势。具体实现已经封装好了,不用操心过多,具体动作都有具体的方法。

2、链表概念

链表(linked list):是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。

链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。

链表的分类

  • 单向链表,双向链表
  • 带头链表,不带头链表
  • 循环的,非循环的

3、构造方法:

构造语法 作用
LinkedList() 构造一个空列表
LinkedList​(Collection<? extends E> c) 按照集合的迭代器返回的顺序构造一个包含指定集合元素的列表。
public class MyLinkedList {
public ListNode head;

public void creatList(){
    ListNode listNode1 = new ListNode(11);
    ListNode listNode2 = new ListNode(22);
    ListNode listNode3 = new ListNode(33);
    ListNode listNode4 = new ListNode(44);
    ListNode listNode5 = new ListNode(55);

    this.head = listNode1;

    listNode1.next = listNode2;
    listNode2.next = listNode3;
    listNode3.next = listNode4;
    listNode4.next = listNode5;

 }
}

2、链表概念

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部