list中的linkedlist的用法
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的用法相关推荐
- Java LinkedList – Java中的LinkedList
Java LinkedList is an implementation of the List and Deque interfaces. It is one of the frequently u ...
- Java中Steam流的用法及使用备忘
文章目录 Java中Steam流的用法及使用备忘 一. 流的常用创建方法 1-1 使用Collection下的 stream() 和 parallelStream() 方法 1-2 使用Arrays ...
- PHP中魔术方法的用法
PHP中魔术方法的用法 /** PHP把所有以__(两个下划线)开头的类方法当成魔术方法.所以你定义自己的类方法时,不要以 __为前缀. * */// __toString.__set.__get__ ...
- 简单介绍SQLserver中的declare变量用法
这篇文章主要介绍了SQLserver中的declare变量用法,sql中declare是声明的意思,就是声明变量的,这个一般是用在函数和存储过程中的.感兴趣的可以来了解一下 平时写SQL查询.存储过程 ...
- python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解
本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...
- 关于sql中case when的用法
Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ...
- 【node】express中mysql的基本用法、连接池的使用、事务的回滚
[node]express中mysql的基本用法.连接池的使用 安装mysql包 mysql的配置信息 mysql基本操作 查询mysql并渲染数据 mysql插入操作 首先在html页面写上< ...
- git 只merge部分_[Skill]俩小时掌握多人开发中git的主要用法
前言 几个月前看完了git文档,但是在实际开发中对很多git命令的具体影响仍有疑惑,比方说pull.fetch和rebase三个命令和检出位置拎不清. Git - Bookgit-scm.com 安 ...
- python的for语句用法_python中list循环语句用法实例
本文实例讲述了python中list循环语句用法.分享给大家供大家参考.具体用法分析如下: Python 的强大特性之一就是其对 list 的解析,它提供一种紧凑的方法,可以通过对 list 中的每个 ...
最新文章
- vivado烧录flash过程
- Android应用安全开发之浅谈加密算法的坑
- 3.1.2 单一数字评估指标以及多个不同评估指标
- 背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox
- 《区块链开发指南》一一第1章 区块链基础
- mysql设计与实现_mysql设计与开发
- 跟我一起学.NetCore之MVC过滤器,这篇看完走路可以仰着头走
- python功能函数_Python-功能函数的使用
- 十七、创建一个 WEB 服务器(一)
- linux libxml2 rpm安装,Linux系统libxml2安装过程
- 计算机文档排版软件,WORD排版大师
- Win10设置内存压缩
- 【Haskell】函子 · 应用函子 · 单子
- python写一个表白程序带时间_python如何写出表白程序
- Unity让图片动起来
- fastdfs连接mysql_使用fastdfs-zyc监控FastDFS文件系统
- 【老九学堂】【C++】编码命名规范
- 祭奠_即将消失的JSP
- 半小时实现Java手撸Http协议,爽!!(附完整源码,建议收藏)
- 七层网络模型(大致信息讲解)