zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    什么是浮动IP
    How can I detect multiple logins into a Django web application from different locations?
    git add -A使用说明
    理解水平扩展和垂直扩展
    php != 和 !== 的区别
    wireshark:Couldn't run /usr/bin/dumpcap in child process: Permission denied
    Unable to VNC onto Centos server remotely
    systemctl使用说明
    KiB、MiB与KB、MB的区别
    python带setup.py的包的安装
  • 原文地址:https://www.cnblogs.com/liyihua/p/12193259.html
Copyright © 2011-2022 走看看