从零开始学java - 第十六天

149 阅读2分钟

这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战

今天继续~

LinkedList(链表)

  • 链表是一种线性表,但是并不会按线性的顺序存储数据
  • 分为单向链表和双向链表

单向链表

  • 单向链表的一项中存在两个值:自己本身和下一个

image.png

双向链表

  • 双向链表的一项中存在三个值:上一个和自己本身和下一个

image.png

ArrayList和LinkedList的使用场景

ArrayList

  • 频繁访问列表中的某一个元素
  • 只需要在列表末尾进行添加和删除操作

LinkedList

  • 通过循环来访问列表元素
  • 需要频繁的在任何位置进行添加和删除操作

创建LinkedList

  • 创建LinkedList需要导入相应的包:
import java.util.LinkedList; 

普通创建

LinkedList<E> list = new LinkedList<E>();

使用集合创建

LinkedList<E> list = new LinkedList(Collection<? extends E> c);

实例

import java.util.LinkedList;
public class Test{
    public static void main(String[] args){
        LinkedList<String> sites = new LinkedList<String>();
        sites.add("Hello");
        sites.add("World");
    }
}

LinkedList常用方法

add(E e) - 末尾添加元素

add(int index,E element) - 向指定位置插入元素

addAll(Collection c) - 将一个集合添加到列表

addAll(int index,Collection c) - 将一个集合添加到指定索引位置

addFirst(E e) - 添加元素到头部

addLast(E e) - 添加元素到尾部

offer(E e) - 向链表末尾添加元素

offerFirst(E e) - 向头部插入元素

offerLast(E e) - 向尾部插入元素

clear() - 清空链表

removeFirst() - 删除第一个元素

removeLast() - 删除最后一个元素

remove(Object o) - 删除某一元素

remove(int index) - 删除指定位置的元素

poll() - 删除并返回第一个元素

remove() - 删除并返回第一个元素

contains(Object o) - 判断是否含有某一元素

get(int index) - 返回指定位置的元素

getFirst() - 返回第一个元素

getLast() - 返回最后一个元素

indexOf(Object o) - 查找指定元素第一次出现的索引

lastindexOf(Object o) - 查找指定元素最后一次出现的索引

peek() - 返回第一个元素

element() - 返回第一个元素

peekFirst() - 返回头部元素

peekLast() - 返回尾部元素

set(int index,E element) - 设置指定位置的元素

clone() - 克隆该列表

descendingIterator() - 返回倒序迭代器

size() - 返回链表元素个数

listIterator(int index) - 返回从指定位置开始到末尾的迭代器

toArray() - 返回一个由链表元素组成的数组

toArray(T[] a) - 返回一个由链表元素转换类型而形成的数组

今天就学到这里吧,晚安~