list中的linkedlist的用法:

LinkedList是list接口的链表实现方式。

LinkedList类为在链表的开头及结尾获取(get)、删除(remove)、和插入(insert)元素提供了统一的命名方法,这些操作允许将ListedList用作堆栈、队列或双端队列。

此实现不是同步的。此类的iterator和listIterator方法返回的迭代器是快速失败的:在迭代器创建之后,如果从结构上对列表进行修改,除非通过迭代器本身的remove或add方法,其他任何时间任何方式的修改,迭代器都将抛出ConcurrentModificationException。因此面对并发的修改,迭代器很快就会完全失败,而不冒将来不确定的时间任意发生不确定行为的风险。

其构造方法有:

1、LinkedList();  构造一个空列表

2、LinkedList(c); 构造一个包含指定collection中的元素的列表,这些元素按其collection的迭代器返回的顺序排列。

package cn.list.demo;import java.util.LinkedList;public class LinkedListDemo {public static void main(String[] args){LinkedList link1=new LinkedList();link1.addFirst("abc1");link1.addFirst("abc2");link1.addFirst("abc3");System.out.println(link1);LinkedList link2=new LinkedList();link2.addLast("abc4");link2.addLast("abc5");link2.addLast("abc6");System.out.println(link2);LinkedList link=new LinkedList(link1);link.add(link2);System.out.println(link);}
}


其中封装的常用方法:

1、添加:

package cn.list.demo;import java.util.LinkedList;public class LinkedListDemo {public static void main(String[] args){LinkedList link=new LinkedList();/** 添加元素:三种方式* 1、添加到头部    addFirst(e);* 2、添加到尾部    addLast(e);等同于add(e);* 3、添加到指定位置  add(index,e);*/link.addFirst("abc1");link.addFirst("abc2");link.addFirst("abc3");link.addFirst("abc4");System.out.println(link);link.addLast("abc5");link.addLast("abc6");link.addLast("abc7");link.addLast("abc8");System.out.println(link);link.add("abc5");link.add("abc6");link.add("abc7");link.add("abc8");// 添加到下标为5,也即第六个位置link.add(5,"hello word");System.out.println(link);}
}

2、删除:

   remove();  获取并移除此列表中的头元素。

   removeFirst();  移除并返回此列表的第一个元素。

   感觉这两个方法一样!

   removeLast();   移除并返回列表的最后一个元素。

   remove(int index); 移除此列表中指定位置处的元素。

   remove(Object o);  从此列表中移除首次出现的指定元素。

package cn.list.demo;import java.util.LinkedList;public class LinkedListDemo {public static void main(String[] args){LinkedList link=new LinkedList();link.addFirst("abc1");link.addFirst("abc2");link.addFirst("abc3");link.addFirst("abc4");System.out.println(link);link.addLast("abc5");link.addLast("abc6");link.addLast("abc7");link.addLast("abc8");System.out.println(link);link.add("abc5");link.add("abc6");link.add("abc7");link.add("abc8");// 添加到下标为5,也即第六个位置link.add(5,"hello word");System.out.println(link);// 删除头元素System.out.println(link.remove());System.out.println(link);System.out.println(link.removeFirst());System.out.println(link);// 删除最后一个元素System.out.println(link.removeLast());System.out.println(link);// 删除指定位置的元素System.out.println(link.remove(3));System.out.println(link);// 删除首次出现的指定元素System.out.println(link.remove("abc7"));System.out.println(link);}
}

3、获取元素:

   get();  获取列表中指定位置处的元素。

   getFirst();  获取列表中第一个元素。

   getLast();   获取列表中最后一个元素。

用法和删除方法的用法一样,get方法只获取元素,并不删除元素;而remove方法既获取该元素,又会将该元素删除。

4、把LinkedList当作堆栈使用时的一些常用方法:

   pop();   从此列表所表示的堆栈处弹出一个元素。

   push();  将元素推入此列表所表示的堆栈。

   clear(); 从列表中移除所有元素。

package cn.list.demo;import java.util.Iterator;
import java.util.LinkedList;public class LinkedListDemo {public static void main(String[] args){LinkedList link=new LinkedList();link.push("abc1");link.push("abc2");link.push("abc3");link.push("abc4");link.push("abc5");// 堆栈while(!link.isEmpty()){System.out.println(link.pop());}System.out.println(link);}
}


5、用LinkedList模拟队列或堆栈的代码:

package cn.list.demo;import java.util.Iterator;
import java.util.LinkedList;public class LinkedListDemo {public static void main(String[] args){// 创建队列对象MyQueue myq=new MyQueue();// 给队列中添加元素myq.myAdd("abc1");myq.myAdd("abc2");myq.myAdd("abc3");myq.myAdd("abc4");myq.myAdd("abc5");while(!myq.isNull()){System.out.println(myq.myGet());}}
}
package cn.list.demo;import java.util.LinkedList;/** 自定义的一种队列数据结构的容器。*/
public class MyQueue {private LinkedList link=null;public MyQueue(){link=new LinkedList();}/** 往队列中添加元素*/public void myAdd(Object obj){// 调用LinkedList的方法link.addLast(obj);}/** 获取队列中元素的方法*/public Object myGet(){return link.removeFirst();}/** 队列是否为空*/public boolean isNull(){return link.isEmpty();}
}

list中的linkedlist的用法相关推荐

  1. Java LinkedList – Java中的LinkedList

    Java LinkedList is an implementation of the List and Deque interfaces. It is one of the frequently u ...

  2. Java中Steam流的用法及使用备忘

    文章目录 Java中Steam流的用法及使用备忘 一. 流的常用创建方法 1-1 使用Collection下的 stream() 和 parallelStream() 方法 1-2 使用Arrays ...

  3. PHP中魔术方法的用法

    PHP中魔术方法的用法 /** PHP把所有以__(两个下划线)开头的类方法当成魔术方法.所以你定义自己的类方法时,不要以 __为前缀. * */// __toString.__set.__get__ ...

  4. 简单介绍SQLserver中的declare变量用法

    这篇文章主要介绍了SQLserver中的declare变量用法,sql中declare是声明的意思,就是声明变量的,这个一般是用在函数和存储过程中的.感兴趣的可以来了解一下 平时写SQL查询.存储过程 ...

  5. python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

  6. 关于sql中case when的用法

    Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ...

  7. 【node】express中mysql的基本用法、连接池的使用、事务的回滚

    [node]express中mysql的基本用法.连接池的使用 安装mysql包 mysql的配置信息 mysql基本操作 查询mysql并渲染数据 mysql插入操作 首先在html页面写上< ...

  8. git 只merge部分_[Skill]俩小时掌握多人开发中git的主要用法

    前言 几个月前看完了git文档,但是在实际开发中对很多git命令的具体影响仍有疑惑,比方说pull.fetch和rebase三个命令和检出位置拎不清. Git - Book​git-scm.com 安 ...

  9. python的for语句用法_python中list循环语句用法实例

    本文实例讲述了python中list循环语句用法.分享给大家供大家参考.具体用法分析如下: Python 的强大特性之一就是其对 list 的解析,它提供一种紧凑的方法,可以通过对 list 中的每个 ...

最新文章

  1. vivado烧录flash过程
  2. Android应用安全开发之浅谈加密算法的坑
  3. 3.1.2 单一数字评估指标以及多个不同评估指标
  4. 背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox
  5. 《区块链开发指南》一一第1章 区块链基础
  6. mysql设计与实现_mysql设计与开发
  7. 跟我一起学.NetCore之MVC过滤器,这篇看完走路可以仰着头走
  8. python功能函数_Python-功能函数的使用
  9. 十七、创建一个 WEB 服务器(一)
  10. linux libxml2 rpm安装,Linux系统libxml2安装过程
  11. 计算机文档排版软件,WORD排版大师
  12. Win10设置内存压缩
  13. 【Haskell】函子 · 应用函子 · 单子
  14. python写一个表白程序带时间_python如何写出表白程序
  15. Unity让图片动起来
  16. fastdfs连接mysql_使用fastdfs-zyc监控FastDFS文件系统
  17. 【老九学堂】【C++】编码命名规范
  18. 祭奠_即将消失的JSP
  19. 半小时实现Java手撸Http协议,爽!!(附完整源码,建议收藏)
  20. 七层网络模型(大致信息讲解)

热门文章

  1. H5页面与ios交互返回上一级
  2. AJAX请求和跨域请求详解(原生JS、Jquery)
  3. Java IO: 字符流的Buffered和Filter
  4. 【CSS】背景遮罩层各种情况下,CSS样式
  5. Android中多媒体处理【转】
  6. 成功的九字真言(冯唐)
  7. cool pyramid diagram
  8. 《工作细胞》电影观后感
  9. 硅谷创业公司的成长道路
  10. ‘xxfile' Missing the class attribute 'ExtensionOfNativeClass'