LinkedList集合(java)

本文详细介绍了LinkedList的内部实现原理,包括其作为双向链表的特性、线程安全性及与ArrayList的区别。同时,深入探讨了LinkedList的常用方法,如addFirst、addLast、getFirst、getLast等,以及如何利用这些方法进行高效的数据操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LinkedList LinkedList底层是使用链表结构实现的,线程不安全,特点:查询速度慢,增删速度快。(有序,可重复)

1、LinkedList 集合简介

1.1、LinkedList 是一个继承于AbstractSequentialList 的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。 
1.2、LinkedList 实现 List 接口,能进行队列操作。 
1.3、LinkedList 实现 Deque 接口,即能将 LinkedList 当作双端队列使用。 
1.4、ArrayList底层是由数组支持,而LinkedList 是由双向链表实现的,其中的每个对象包含数据的同时还包含指向链表中前一个与后一个元素的引用。 

2、LinkedList 集合常用特有方法

2.1、方法介绍

    addFirst(E e):把元素添加到集合的首位置
    addLast(E e) :把元素添加到集合的末尾处
    getFirst() :获取集合中的首位元素
    getLast() :获取集合中的末尾元素
    removeFirst():删除集合中的首位元素并返回删除的元素
    removeLast():删除集合中的末尾元素并返回删除的元素
    descendingIterator():LinkedList 集合的特有迭代器: 返回逆序的迭代器对象

eg:

import java.util.Iterator;
import java.util.LinkedList;

public class linklist {
	
	public static void main(String[] arg)
	{
		LinkedList<String> test=new LinkedList<String>();
		test.add("第一");
		test.add("第二");
		test.add("第三");
		System.out.println(test);
		test.addFirst("第零");  //把元素添加到集合首位
		System.out.println(test);
		test.addLast("第四");  //把元素添加到集合末尾
		System.out.println(test);
		System.out.println("获取集合中的首位元素:"+test.getFirst());
		System.out.println(test);
		System.out.println("获取集合中的末位元素:"+test.getLast());
		System.out.println(test);
		System.out.println("删除集合中的首位元素并返回删除的元素:"+test.removeFirst());
		System.out.println(test);
		System.out.println("删除集合元素中的末位元素并返回删除元素:"+test.removeLast());
		System.out.println(test);
		
		Iterator<String> test1=test.descendingIterator();
		System.out.println(test1);
		while(test1.hasNext())  //hasNext():获取下一位的状态,如果存在下一位,则返回true。
		{
			System.out.println(test1.next()+",");  //next():返回下一位的值。
		}
		
	
	}

}

在这里插入图片描述

2.2.、栈:主要用于堆栈的数据结构的存储方式 。 堆栈数据结构存储的特点:先进后出,后进先出

 push(E e) :将指定的元素插入指定集合的开头处
 pop() :移除集合中的第一个元素,并返回移除的元素

eg:

LinkedList<String> test=new LinkedList<String>();
test.add("第一");
test.add("第二");
test.add("第三");

test.push("栈的开头");  //push(E e) :将指定的元素插入指定集合的开头处--此时把LinkedList对象当栈处理。
System.out.println(test);
System.out.println("移除集合中的第一个元素,并返回移除的元素:"+test.pop());
System.out.println(test);

在这里插入图片描述

2.3、队列:主要为了让我们可以使用LinkedList模拟列队数据结构存储方式。 队列数据结构存储的特点:先进先出,后进后出

 offer(E e) :将指定元素插入到集合中的末尾处
 poll() :删除并返回指定集合中的第一个元素

eg:

LinkedList<String> test=new LinkedList<String>();
test.add("第一");
test.add("第二");
test.add("第三");

test.offer("队列的头"); //offer(E e) :将指定元素插入到集合中的末尾处--此时把LinkedList对象当队列处理。
System.out.println(test);
System.out.println("删除集合的第一个元素,并返回删除元素:"+test.poll());
System.out.println(test);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想去的远方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值