java集合之linkedList链表基础
LinkedList链表:
List接口的链接列表实现。允许存储所有元素(包含null)。使用频繁增删元素。
linkedList方法:
void addFirst(E e) 指定元素插入列表的开头
void addLast(E e)
boolean offerFirst(E e) 在此列表的开头插入指定的元素
boolean offerLast(E e)
E getFirst() 返回此列表的第一个元素
E getLast()
E removeFirst() 移除并返回此列表的第一个元素
E removeLast()
E peekFirst() 获取但不移除此列表的一个元素,若此列表为空,则返回null
E peekLast()
E pollFirst() 获取并移除此列表的第一个元素,若此列表为空,则返回null
E pollLast()
LinkList线程不同步,可在创建时使其保持同步,
List list=Collections.synchronizedList(new LinkList(…));
示例:
package test;
import java.util.LinkedList;
import java.util.List;
public class LinkedListTest {
public static void main(String[] args) {
// 测试LinkedList常用方法
testLinkedListMethods() ;
}
private static void testLinkedListMethods() {
LinkedList<String> llist = new LinkedList<String>();
//List<String> llist = new LinkedList<String>();
llist.add("1");
llist.add("2");
llist.add("3");
llist.add("测试4");
llist.add(2, "test5");//添加到指定位置
llist.addFirst("开始位置6");//添加到开始位置
System.out.println("1-llist:"+llist);
System.out.println("2-llist.removeFirst():"+llist.removeFirst());//removeFirst()返回移除的值
System.out.println("3-llist:"+llist);
System.out.println("4-llist.getFirst():"+llist.getFirst());//,LinkedList有
llist.offerFirst("10");//列表开始位置插入,LinkedList有
System.out.println("5-llist:"+llist);
System.out.println("llist.pollFirst():"+llist.pollFirst());//返回并移除列表开始位置的值
System.out.println("6-llist:"+llist);
System.out.println("7-llist.peekFirst():"+llist.peekFirst());//返回但不移除列表第一个元素
llist.addLast("列表尾部插入1");//,LinkedList有
System.out.println("8-llist:"+llist);
System.out.println("9-llist.removeLast():"+llist.removeLast());//返回并移除列表最后一个值
System.out.println("10-llist:"+llist);
System.out.println("11-llist.getLast():"+llist.getLast());//返回列表最后一个值
llist.offerLast("20");//列表尾部增加
System.out.println("12-llist:"+llist);
System.out.println("13-llist.pollLast():"+llist.pollLast());//获取并移除列表的列表的最后一个元素
System.out.println("14-llist:"+llist);
System.out.println("15-llist.peekLast():"+llist.peekLast());//
llist.set(2, "300");
System.out.println("16-\nget(3):"+llist.get(2));
// 将LinkedList转行为数组
String[] arr = llist.toArray(new String[0]);
for (String str:arr)
System.out.println("17-str:"+str);
System.out.println("18-size:"+llist.size());
// 清空LinkedList
llist.clear();
// 判断LinkedList是否为空
System.out.println("19-isEmpty():"+llist.isEmpty()+"\n");
}
}
java集合之linkedList链表基础的更多相关文章
- java集合之ArrayList链表基础
ArrayList可变数组 : arrayList继承AbstractList抽象类,实现list接口,底层基于数组实现.可存放null,除了非同步的之外,大致等同Vector.适用快速访问,复制.序 ...
- 【Java集合】LinkedList详解前篇
[Java集合]LinkedList详解前篇 一.背景 最近在看一本<Redis深度历险>的书籍,书中第二节讲了Redis的5种数据结构,其中看到redis的list结构时,作者提到red ...
- Java 集合之LinkedList源码分析
1.介绍 链表是数据结构中一种很重要的数据结构,一个链表含有一个或者多个节点,每个节点处理保存自己的信息之外还需要保存上一个节点以及下一个节点的指针信息.通过链表的表头就可以访问整个链表的信息.Jav ...
- Java集合干货——LinkedList源码分析
前言 在上篇文章中我们对ArrayList对了详细的分析,今天我们来说一说LinkedList.他们之间有什么区别呢?最大的区别就是底层数据结构的实现不一样,ArrayList是数组实现的(具体看上一 ...
- Java集合:LinkedList源码解析
Java集合---LinkedList源码解析 一.源码解析1. LinkedList类定义2.LinkedList数据结构原理3.私有属性4.构造方法5.元素添加add()及原理6.删除数据re ...
- 死磕 java集合之LinkedList源码分析
问题 (1)LinkedList只是一个List吗? (2)LinkedList还有其它什么特性吗? (3)LinkedList为啥经常拿出来跟ArrayList比较? (4)我为什么把LinkedL ...
- Java集合之LinkedList源码分析
概述 LinkedLIst和ArrayLIst一样, 都实现了List接口, 但其内部的数据结构不同, LinkedList是基于链表实现的(从名字也能看出来), 随机访问效率要比ArrayList差 ...
- Java学习之集合(LinkedList链表集合)
一.什么是链表集合,通过图形来看,比如33只知道它下一个是55 如果:现在要删除33的话,就是把55赋值给45,这样看它操作集合速度会非常快. 二.LinkedList特有方法 1.添加 addFir ...
- Java集合(五)--LinkedList源码解读
首先看一下LinkedList基本源码,基于jdk1.8 public class LinkedList<E> extends AbstractSequentialList<E> ...
随机推荐
- 用101000张食物图片实现图像识别(数据的获取与处理)-python-tensorflow框架
前段时间,日剧<轮到你了>大火,作为程序员的我,看到了另外一个程序员—二阶堂,他的生活作息,以及饮食规律,让我感同身受,最让我感触的是他做的AI聊天机器人,AI菜品分析机器人,AI罪犯分析 ...
- Linux 笔记 - 特殊权限
博客地址:http://www.moonxy.com 一.前言 Linux 中使用权限的时候,一般都是使用 3 位数,比如,777.755.666.644 等,其实在最前面还有一位,那就是特殊权限,也 ...
- MYSQL之查询篇
2. 数据库操作 数据库在创建以后最常见的操作便是查询 2.1 查询 为了便于学习和理解,我们预先准备了两个表分别是stduents表和classes表两个表的内容和结构如下所示 students表的 ...
- 【Win10】时钟精确到秒
[Win10]时钟精确到秒 前言 想要桌面右下角的时钟"xx:xx:xx"精确到秒,可以使用绿色免费开源软件Dism++,也可以从该软件的代码中读到方法:用注册表实现. 步骤 进入 ...
- WebStorm在Font设置FontSize无效解决方法
我的WebStorm设置了主题.所以直接在File-Settings-Editor-Font设置了无效.它会提醒你要在主题里面改.主题在哪里呢 找到File-Settings-Editor-Color ...
- VMbox 安装 LInux系统流程
STEP 1 文件--新建---(自定义高级)---(默认设置)---(稍后安装系统)---(Linux+选择版本)---(虚拟机名字+存放位置)---(处理器2+核数2)---(虚拟机内存)2G一般 ...
- (java实现)单链表
什么是单链表 在了解单链表之前,你知道什么是链表吗?如果你不知道什么是链表,可以看看我的这篇博客<链表-LinkList> 单链表是链表的其中一种基本结构.一个最简单的结点结构如图所示,它 ...
- Spring MVC-从零开始-@ResponseBody(未完待续)
Spring MVC-从零开始-@ResponseBody(未完待续)
- c# 9.0 特性提案 简化空参数验证代码
简而言之就是将已存在的特性null参数验证,使用一个简单的语义标注进一步简化. 对于如下这段代码 // Before void Insert(string s) { if (s is null) { ...
- C语言I博客作业02
这个作业属于那个课程 C语言程序设计I 这个作业要求在哪 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/8656 我在这个课程的目标 ...