在Java中,LinkedList和ArrayList一样都是属于集合List的实现类,今天小编将为大家带来大数据编程入门:Java LinkedList这篇文章来介绍LinkedList的概念及使用。
一、LinkedList的概念及使用
LinkedList翻译成中文就是链表,一种常见的基础数据结构,是一种线性表,但是数据并不是以线性顺序存储的,而是在每个节点中存储到下一个节点的地址。
1、链表可以分为单向链表和双向链表。
A. 单向链表包含两个值:当前节点的值和到下一个节点的链接。
B. 双向链表有三个整数值:数值、向后的节点链接、向前的节点链接。
Java LinkedList(链表)是一种通用的数据容器。
2、LinkedList与ArrayList的区别
与ArrayList相比,LinkedList的增加和删除效率更高,而搜索和修改的操作效率比较低。
① ArrayList使用场景:
A. 经常访问列表中的元素。
B. 只需要在列表的末尾添加和删除元素。
② LinkedList使用场景:
A. 需要遍历循环以访问列表中的某些元素。
B. 需要频繁地添加和删除列表开头、中间和结尾的元素。
3、以下是LinkedList继承了AbstractSequentialList类的接口实现列表。
接口 | 描述 |
Queue | 可以作为队列使用 |
List | 可以进行列表的相关操作 |
Deque | 可以作为队列使用 |
Cloneable | 可以实现克隆 |
java.io.Serializable | 支持序列化,可以通过序列化进行传输。 |
LinkedList类位于java.util包中,使用前需要引入,语法格式如下:
// 引入 LinkedList 类
import java.util.LinkedList;
LinkedList<E> list = new LinkedList<E>(); // 普通创建方法
或者
LinkedList<E> list = new LinkedList(Collection<? extends E> c); // 使用集合创建链表
以下创建一个简单的链表实例:
运行结果:
通常,我们使用ArrayList更有效地访问列表中的随机元素,但是LinkedList在以下情况下提供了更有效的方法。
4、在列表开头添加元素:
运行结果:
5、在列表结尾添加元素:
运行结果:
6、在列表开头移除元素:
运行结果:
7、在列表结尾移除元素:
运行结果:
8、获取列表开头的元素:
运行结果:
9、获取列表结尾的元素:
运行结果:
二、迭代元素
我们可以使用for和size()方法来迭代列表中的元素,实例如下:
运行结果:
还可以使用for-each来迭代元素,实例如下:
运行结果:
三、常用方法
方法 | 描述 |
public boolean add(E e) | 链表的末尾添加元素返回是否成功,成功是true,失败是false。 |
public void add(int index, E element) | 将元素插入到指定位置。 |
public boolean addAll(Collection c) | 将集合的所有元素添加到链表的后面,并返回是否成功,成功是true,失败是false。 |
public boolean addAll(int index, Collection c) | 将集合的所有元素添加到链表的指定位置,并返回是否成功,成功是true,失败是false。 |
public void addFirst(E e) | 元素添加到头部。 |
public void addLast(E e) | 元素添加到尾部。 |
public boolean offer(E e) | 向链表末尾添加元素,返回是否成功,成功为 true,失败为 false。 |
public boolean offerFirst(E e) | 头部插入元素,返回是否成功,成功为 true,失败为 false。 |
public boolean offerLast(E e) | 尾部插入元素,返回是否成功,成功为 true,失败为 false。 |
public void clear() | 清空链表。 |
public E removeFirst() | 删除并返回第一个元素。 |
public E removeLast() | 删除并返回最后一个元素。 |
public boolean remove(Object o) | 删除某一元素,返回是否成功,成功为 true,失败为 false。 |
public E remove(int index) | 删除指定位置的元素。 |
public E poll() | 删除并返回第一个元素。 |
public E remove() | 删除并返回第一个元素。 |
public boolean contains(Object o) | 判断是否含有某一元素。 |
public E get(int index) | 返回指定位置的元素。 |
public E getFirst() | 返回第一个元素。 |
public E getLast() | 返回最后一个元素。 |
public int indexOf(Object o) | 查找指定元素从前往后第一次出现的索引。 |
public int lastIndexOf(Object o) | 查找指定元素最后一次出现的索引。 |
public E peek() | 返回第一个元素。 |
public E element() | 返回第一个元素。 |
public E peekFirst() | 返回头部元素。 |
public E peekLast() | 返回尾部元素。 |
public E set(int index, E element) | 设置指定位置的元素。 |
public Object clone() | 克隆该列表。 |
public Iterator descendingIterator() | 返回倒序迭代器。 |
public int size() | 返回链表元素个数。 |
public ListIterator listIterator(int index) | 返回从指定位置开始到末尾的迭代器。 |
public Object[] toArray() | 返回一个由链表元素组成的数组。 |
public T[] toArray(T[] a) | 返回一个由链表元素转换类型而成的数组。 |
以上就是关于大数据编程入门:Java LinkedList这篇文章的全部内容了,希望可以帮助到大家~