首页 > 代码库 > java集合之LinkedList

java集合之LinkedList

LinkedList:位于java.util包下


1 LinkedList概述

特点:底层数据结构是链表,增删快查询慢;实现非同步,线程不安全,效率高;有序(存取顺序一致);允许存储重复值;允许存储null值;易于实现堆栈、队列、双向队列结构;

常用构造:

 public LinkedList(): 空参构造,构建一个空列表。

常用方法:和ArrayList差不多,此处仅列出特有的功能方法。

1)添加功能:

public addFirst(E e) :将指定元素插入此列表的开头。

public addLast(E e) :将指定元素插入此列表的末尾。

2)获取功能

public E element(): 获取但不移除此列表的头(第一个元素)。

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

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

3)删除功能

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

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

4)还有一些栈、队列相关的功能方法。。。


 LinkedList集合属于List集合中的一个子类,其使用类似ArrayList。

2 LinkedList应用

1)模拟栈结构:底层封装LinkedList集合,实现Stack栈结构

package collection.test;

import java.util.LinkedList;

public class MyStack<T> {
  private LinkedList<T> list;


  public MyStack(){
    list = new LinkedList<T>();
  }

  public boolean add(T obj){
    list.addFirst(obj);
    return true;
  }

  public Object get(){
    return list.removeFirst();
  }

  public boolean isEmpty(){
    return list.isEmpty();
  }
}

public class MyStackTest {
  public static void main(String[] args) {
    MyStack<String> stack = new MyStack<String>();
    //压栈
    stack.add("hello");
    stack.add("world");
    stack.add("java");
    //弹出栈
    while(!stack.isEmpty()){
      System.out.println(stack.get());
    }

  }
}

 

java集合之LinkedList