Java Linked集合的简单介绍和常用方法的使用

Posted 李亦华的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Linked集合的简单介绍和常用方法的使用相关的知识,希望对你有一定的参考价值。

LinkedList的简单介绍

java.util.LinkedList 集合数据存储的结构是链表结构。LinkedList是一个双向链表
在实际开发中,对一个集合元素的添加和删除,经常涉及到首尾操作,而LinkedList就提供了大量的首尾操作的方法

 

LinkedList集合的特点

1、方便元素的添加、删除

2、元素的查询慢

2、里面包括了大量首尾首尾操作的方法

注意:LinkedList集合的方法不能使用多态

 

为什么说LinkedList集合添加、删除元素方便,查询元素慢

首先,LinkedList集合数据存储的结构是链表结构,

而链表是添加、删除元素方便,查询元素慢的:

查询慢:链表中地址不是连续的每次查询元素都必须从头开始查询

增删快:链表结构增加/删除一个元素对链表的整体结构没有影响,所以增删快

 

操作集合首尾的方法、是否为空判断方法

public void addFirst(E e):将指定元素插入此列表的开头。
public void addLast(E e):将指定元素添加到此列表的结尾。

public E getFirst():返回此列表的第一个元素。
public E getLast():返回此列表的最后一个元素。

public E removeFirst():移除并返回此列表的第一个元素。
public E removeLast():移除并返回此列表的最后一个元素。

public void push(E e):将元素推入此列表所表示的堆栈。
public E pop():从此列表所表示的堆处弹出一个元素。

public boolean isEmpty():如果列表不包含元素,则返回true

addFirst()和addLast()方法

public class DemoLinkedListAddFirstLast {
    public static void main(String[] args) {
        // 创建LinkedList链表集合对象
        LinkedList<String> linkedList = new LinkedList<>();

        // 向linkedList添加元素
        linkedList.add(0, "链表元素0");
        linkedList.add(1, "链表元素1");
        linkedList.add(2, "链表元素2");
        linkedList.add(3, "链表元素3");
        linkedList.add(4, "链表元素4");
        linkedList.add(5, "链表元素5");
        System.out.println(linkedList);

        // 用addFirst方法向链表集合开头添加一个元素
        linkedList.addFirst("开头");
        // 用addLast方法向链表集合开头添加一个元素
        linkedList.addLast("结尾");
        System.out.println(linkedList);
    }
}
输出结果:
[链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5]
[开头, 链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5, 结尾]

getFirst()和getLact()方法

import java.util.LinkedList;

public class DemoLinkedListGetFirstLast {
    public static void main(String[] args) {
        // 创建LinkedList链表集合对象
        LinkedList<String> linkedList = new LinkedList<>();

        // 向linkedList添加元素
        linkedList.add(0, "链表元素0");
        linkedList.add(1, "链表元素1");
        linkedList.add(2, "链表元素2");
        linkedList.add(3, "链表元素3");
        linkedList.add(4, "链表元素4");
        linkedList.add(5, "链表元素5");
        System.out.println(linkedList);

        // 获取此列表的第一个元素。
        String first = linkedList.getFirst();
        // 获取此列表的最后一个元素。
        String last = linkedList.getLast();
        System.out.println("第一个元素:" + first);
        System.out.println("最后一个元素:" + last);
    }
}
输出结果:
[链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5]
第一个元素:链表元素0
最后一个元素:链表元素5

removeFirst()和removeLast()方法

import java.util.LinkedList;

public class DemoLinkedListRemoveFirstLast {
    public static void main(String[] args) {
        // 创建LinkedList链表集合对象
        LinkedList<String> linkedList = new LinkedList<>();

        // 向linkedList添加元素
        linkedList.add(0, "链表元素0");
        linkedList.add(1, "链表元素1");
        linkedList.add(2, "链表元素2");
        linkedList.add(3, "链表元素3");
        linkedList.add(4, "链表元素4");
        linkedList.add(5, "链表元素5");
        System.out.println(linkedList);

        // 移除并返回此列表的第一个元素
        String first = linkedList.removeFirst();
        // 移除并返回此列表的最后一个元素
        String last = linkedList.removeLast();
        System.out.println("移除的第一个元素:" + first);
        System.out.println("移除的最后一个元素:" + last);
        System.out.println("此时的集合:" + linkedList);
    }
}
输出结果:
[链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5]
移除的第一个元素:链表元素0
移除的最后一个元素:链表元素5
此时的集合:[链表元素1, 链表元素2, 链表元素3, 链表元素4]

push()和pop()方法

说明:push()方法和addFirst()方法功能一样

     pop()方法和removeFirst()方法功能一样

import java.util.LinkedList;

public class DemoLinkedListPushPop {
    public static void main(String[] args) {
        // 创建LinkedList链表集合对象
        LinkedList<String> linkedList = new LinkedList<>();

        // 向linkedList添加元素
        linkedList.add(0, "链表元素0");
        linkedList.add(1, "链表元素1");
        linkedList.add(2, "链表元素2");
        System.out.println("原集合:" + linkedList);

        // 将元素推入此列表所表示的堆栈
        linkedList.push("push元素");
        System.out.println("push()操作后的集合:" + linkedList);

        // 从此列表所表示的堆处弹出一个元素
        linkedList.pop();
        System.out.println("push()操作后的集合:" + linkedList);
    }
}
输出结果:
原集合:[链表元素0, 链表元素1, 链表元素2]
push()操作后的集合:[push元素, 链表元素0, 链表元素1, 链表元素2]
push()操作后的集合:[链表元素0, 链表元素1, 链表元素2]

isEmpty()方法

import java.util.LinkedList;

public class DemoLinkedListIsEmpty {
    public static void main(String[] args) {
        // 创建LinkedList链表集合对象
        LinkedList<String> linkedList = new LinkedList<>();

        boolean b1 = linkedList.isEmpty();
        System.out.println("集合是否为空:" + b1);

        // 向linkedList添加元素
        linkedList.add(0, "链表元素0");
        linkedList.add(1, "链表元素1");
        linkedList.add(2, "链表元素2");

        boolean b2 = linkedList.isEmpty();
        System.out.println("集合是否为空:" + b2);
    }
}
输出结果:
集合是否为空:true
集合是否为空:false

以上是关于Java Linked集合的简单介绍和常用方法的使用的主要内容,如果未能解决你的问题,请参考以下文章

java面试题之简单介绍一下集合框架

Java List集合的介绍与常用方法

Java 集合之HashSet常用方法实例介绍

Java基础集合Collection Map的概述

[数据结构篇]深入了解java集合框架

JAVA-初步认识-常用对象API(集合框架-泛型-泛型限定-上限)