List集合的具体子类:LinkedList

ndmtzwdx / 2024-10-21 / 原文

一、LinkedList集合的特点:

底层的数据结构是双链表,增删快,查询慢,线程不安全,效率高

二、特殊功能:

public void addFirst(E e)及addLast(E e)

addFirst是在集合的第一个位置进行添加,addLast是在集合的最后一个位置进行添加

public E getFirst()及getLast()

getFirst是获取集合的第一个元素,getLast是获取集合的最后一个元素

public E removeFirst()及public E removeLast()

removeFirst是删除第一个元素并显示出来,removeList是删除集合的最后一个元素并将其显示出来

public class LinkedListDemo1 {
    public static void main(String[] args) {
        LinkedList list1 = new LinkedList();
        list1.add("hello");
        list1.add("world");
        list1.add("java");
        list1.add("hello");
        list1.add("world");
        list1.add("hadoop");

        System.out.println("list1: "+list1);
        System.out.println("=====================");
        //public void addFirst(E e)及addLast(E e)
        list1.addFirst("hive");//在第一个位置添加元素
        list1.addLast("java");//在最后一个位置添加元素
        //public E getFirst()及getLast()
        System.out.println(list1.getFirst());//获取第一个位置的元素
        System.out.println(list1.getLast());//获取最后一个位置的元素
        //public E removeFirst()及public E removeLast()
        System.out.println(list1.removeFirst());//删除第一个位置的元素,并显示出来
        System.out.println(list1.removeLast());//删除最后一个位置的元素,并显示出来
    }
}

三、LinkedList集合的练习题

请用LinkedList模拟栈数据结构的集合,并测试
本质意思是指自己创建一个类,底层是用LinkedList集合

1.先编写一个Mask类

里面需要使用LinkedList集合模拟栈先进后出的特点,编写添加元素方法和获取元素方法还有获取集合长度的方法

import java.util.LinkedList;

public class Mask {
    private LinkedList linkedList;

    public Mask() {
           linkedList  = new LinkedList();
    }

    public void append(Object obj){
        linkedList.addFirst(obj); //向集合添加元素,使用了addFirst方法,一直向集合的第一个位置添加元素,模拟压栈
    }

    public Object get(){
        return linkedList.removeFirst();//这个方法虽然是移除集合第一个元素但也返回了那个元素,模拟弹栈
    }

    public int ChangDu(){
        return linkedList.size();
    } //获取集合长度并返回
    @Override
    public String toString() {
        return "Mask{" +
                "linkedList=" + linkedList +
                '}';
    }
}

2.再编写一个测试类,去创建该类对象,调用里面的方法

public class LinkedListTest1 {
    public static void main(String[] args) {
        Mask mask = new Mask();//编写一个Mask类并创建对象
        mask.append("A");//调用Mask中的append方法来实现往里面添加数据
        mask.append("B");
        mask.append("C");
        mask.append("D");
        mask.append("E");
        mask.append("F");
        int length=mask.ChangDu();//调用ChangDu方法来实现获取其中的长度
        for(int i=0;i<length;i++){
            System.out.println(mask.get()); //最后调用get方法获取里面的数据
        }

    }
}