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链表基础的更多相关文章

  1. java集合之ArrayList链表基础

    ArrayList可变数组 : arrayList继承AbstractList抽象类,实现list接口,底层基于数组实现.可存放null,除了非同步的之外,大致等同Vector.适用快速访问,复制.序 ...

  2. 【Java集合】LinkedList详解前篇

    [Java集合]LinkedList详解前篇 一.背景 最近在看一本<Redis深度历险>的书籍,书中第二节讲了Redis的5种数据结构,其中看到redis的list结构时,作者提到red ...

  3. Java 集合之LinkedList源码分析

    1.介绍 链表是数据结构中一种很重要的数据结构,一个链表含有一个或者多个节点,每个节点处理保存自己的信息之外还需要保存上一个节点以及下一个节点的指针信息.通过链表的表头就可以访问整个链表的信息.Jav ...

  4. Java集合干货——LinkedList源码分析

    前言 在上篇文章中我们对ArrayList对了详细的分析,今天我们来说一说LinkedList.他们之间有什么区别呢?最大的区别就是底层数据结构的实现不一样,ArrayList是数组实现的(具体看上一 ...

  5. Java集合:LinkedList源码解析

    Java集合---LinkedList源码解析   一.源码解析1. LinkedList类定义2.LinkedList数据结构原理3.私有属性4.构造方法5.元素添加add()及原理6.删除数据re ...

  6. 死磕 java集合之LinkedList源码分析

    问题 (1)LinkedList只是一个List吗? (2)LinkedList还有其它什么特性吗? (3)LinkedList为啥经常拿出来跟ArrayList比较? (4)我为什么把LinkedL ...

  7. Java集合之LinkedList源码分析

    概述 LinkedLIst和ArrayLIst一样, 都实现了List接口, 但其内部的数据结构不同, LinkedList是基于链表实现的(从名字也能看出来), 随机访问效率要比ArrayList差 ...

  8. Java学习之集合(LinkedList链表集合)

    一.什么是链表集合,通过图形来看,比如33只知道它下一个是55 如果:现在要删除33的话,就是把55赋值给45,这样看它操作集合速度会非常快. 二.LinkedList特有方法 1.添加 addFir ...

  9. Java集合(五)--LinkedList源码解读

    首先看一下LinkedList基本源码,基于jdk1.8 public class LinkedList<E> extends AbstractSequentialList<E> ...

随机推荐

  1. TestNG(十五)xml文件实现多线程测试

    package com.course.testng.thread; import org.testng.annotations.Test; public class ThreadOnXml { @Te ...

  2. 百度脑图-离线版(支持Linux、Mac、Win)

    免费好用的思维导图软件(在线版) 离线版:桌面版脑图是基于百度脑图的本地化版本,帮助你在没有互联网环境的情况下,依然可以使用脑图工具. 百度脑图帮助你进行思维导图,可以运用于学习.写作.沟通.演讲.管 ...

  3. seo搜索引擎的优化方法

    现在互联网的入口,一般都是被搜索引擎霸占.所以我们要想让别人搜索时,优先看到我们的网站.有两种方法: 1.竞价排名.这是需要钱的,给的钱越多,排名越靠前.参考某度.. 2.不想花钱,就使用seo搜索引 ...

  4. js/jquery去掉空格,回车,换行

    Jquery:$("#accuracy").val($("#accuracy").val().replace(/\ +/g,""));//去 ...

  5. 基于SpringBoot实现AOP+jdk/CGlib动态代理详解

    动态代理是一种设计模式.在Spring中,有俩种方式可以实现动态代理--JDK动态代理和CGLIB动态代理. JDK动态代理 首先定义一个人的接口: public interface Person { ...

  6. (3)安装elastic6.1.3及插件kibana,x-pack,essql,head,bigdesk,cerebro,ik

    6安装nginx 6.1安装nginx 安装 pcre,zlib,openssl,nginx 6.2生成web访问用户密码 htpasswd –c –b /usr/local/nginx/conf/p ...

  7. vsftpd上传文件大小为0(主动模式)

    最近在搞VSFTPD+Nginx结合,但是发现上传文件大小总是为0, 由于最开始在搞的时候不知道主动模式和被动模式到底是什么鬼东西,所以遇到问题根本找不到根的原因,遇到问题只是乱搜,好像是解决了问题, ...

  8. 『嗨威说』算法设计与分析 - STL中Sort函数的实现原理初探

    本文索引目录: 一.对Sort算法实现的个人阅读体会 二.Sort算法使用的三个排序算法的优点介绍 2.1 插入排序的优缺点 2.2 堆排序的优缺点 2.3 快速排序的优缺点 2.4 新的结合排序—— ...

  9. 数据分析--numpy的基本使用

    一.numpy概述 NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础. NumPy的主要功能: ndarray,一个多维数组结构,高效且节省空间 无需循环对整组数据进 ...

  10. JAVA面试题 (一)

    java作用域public private protected 不写-friendly的区别? public:可以被任何类引用. protected:除了其他包不能使用,当前类,子孙类,同一包下的所有 ...