概述
ArrayList:底层数据结构是可变数组,特点是查询和修改的效率高,插入和删除的效率低
LinkedList:底层数据结构是链表,特点是插入和删除的效率高,查询和修改的效率低
使用时可以根据需求来选择ArrayList、LinkedList来使用。
链表模型
结点:一个数据单元
数据域:数据单元中用来存储实际数据的成员
指针域:数据单元中用来存储下一个结点的成员
LinkedList的特有方法
方法名 | 说明 |
void addFirst(E e) | 在头结点添加成员 |
void addLast(E e) | 在尾结点添加成员 |
E getFirst() | 获取头结点 |
E getLast() | 获取尾结点 |
E removeFirst() | 删除头结点 |
E removeLast() | 删除尾结点 |
package com.pj;
import java.util.LinkedList;
/**
* @author pj_hxj
* @Description:
*/
public class Demo05 {
public static void main(String[] args) {
//创建LinkedList集合
LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("111");
linkedList.add("222");
linkedList.add("333");
linkedList.add("444");
//给头结点添加元素
linkedList.addFirst("000");
System.out.println(linkedList);//[000, 111, 222, 333, 444]
//给尾结点添加元素
linkedList.addLast("555");
System.out.println(linkedList);//[000, 111, 222, 333, 444, 555]
//获取头结点
String first = linkedList.getFirst();
System.out.println(first);//000
//获取尾结点
String last = linkedList.getLast();
System.out.println(last);//555
//删除头结点,返回被删除结点的成员
String removeFirst = linkedList.removeFirst();
System.out.println(removeFirst);//000
System.out.println(linkedList);//[111, 222, 333, 444, 555]
//删除尾结点,返回被删除结点的成员
String removeLast = linkedList.removeLast();
System.out.println(removeLast);//555
System.out.println(linkedList);//[111, 222, 333, 444]
}
}