在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这篇文章的全部内容了,希望可以帮助到大家~