Java集合框架之LinkedList-----用LinkedList模拟队列和堆栈
LinkedList的特有方法:
(一)添加方法
addFisrt(E e):将指定元素插入此列表的开头。//参数e可以理解成Object对象,因为列表可以接收任何类型的对象,所以e就是Object对象(传递过程即向上转型)。
addLast(E e):将指定元素插入此列表的结尾。
JDK1.6之后:
offerFirst();
offerLast();//其实前后的用法相同,换了一个名字而已。
(二):获取元素方法(获取过程不删除链表元素):
getFirst();返回此列表的第一个元素。如果链表为空,则抛出NoSuchElementException异常。
getLast();返回此列表的最后一个元素。
JDK1.6之后:
peekFirst();获取链表的第一个元素,如果链表为空则会返回null。
peekLast();
(三):获取元素方法(获取过程删除链表元素):
removeFirst();获取链表的第一个元素,并在链表中删除该元素,如果链表为空则抛出NoSuchElementException异常.
removeLast();
JDK1.6之后:
pollFirst();获取链表的第一个元素,并在链表中删除该元素,如果链表为空则返回null.
pollLast();
具体代码实现:
package collection;
/*
* 用LinkedList模拟队列这一数据结构
*/
import java.util.LinkedList; class Queue{//创建一个容器,对外提供可以使用容器的对象(调用容器中封装的方法)
private LinkedList link;
public Queue(){
link=new LinkedList();
}
public void myAdd(Object obj){
link.offerLast((obj));
}
public Object myGet(){
return link.pollFirst();
}
public boolean isNull(){
return link.isEmpty();
}
}
public class LinkedListTest { /**
* @param args
*/
public static void main(String[] args) { Queue dl=new Queue();
dl.myAdd("abc0");
dl.myAdd("abc1");
dl.myAdd("abc2");
dl.myAdd("abc3");
while(!dl.isNull()){
System.out.println(dl.myGet());
}
} }
总结上面的代码:对外提供容器对象,容器中封装的方法可以实现队列先进先出(FIFO)的需求,调整其中封装的方法,同样可以实现堆栈先进后出这一种数据结构(FILO)。
Java集合框架之LinkedList-----用LinkedList模拟队列和堆栈的更多相关文章
- Java 集合框架(三)—— LinkedList
三.链表 —— LinkedList ArrayList 虽然好用,但是数组和数组列表都有一个重大的缺陷:从数组的中间位置删除一个元素要付出很大的代价,其原因是数组中处于被删除元素之后的所有元素都要向 ...
- Java集合框架之二:LinkedList源码解析
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! LinkedList底层是通过双向循环链表来实现的,其结构如下图所示: 链表的组成元素我们称之为节点,节点由三部分组成:前一个节点的引用地 ...
- java集合框架05——ArrayList和LinkedList的区别
前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容. List概括 先来回顾一下List在Collection中的的框架图 ...
- java集合框架之ArrayList与LinkedList的区别
参考http://how2j.cn/k/collection/collection-arraylist-vs-linkedlist/690.html#nowhere ArrayList和LinkedL ...
- 【java集合框架源码剖析系列】java源码剖析之LinkedList
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本. 在实际项目中LinkedList也是使用频率非常高的一种集合,本博客将从源码角度带领大家学习关于LinkedList的知识. ...
- java集合框架之LinkedList
参考http://how2j.cn/k/collection/collection-linkedlist/370.html LinkedList 与 List接口 与ArrayList一样,Linke ...
- Java集合框架源码分析(2)LinkedList
链表(LinkedList) 数组(array)和数组列表(ArrayList)都有一个重大的缺陷: 从数组的中间位置删除一个元素要付出很大的代价,因为数组中在被删除元素之后的所有元素都要向数组的前端 ...
- Java集合框架之LinkedList浅析
Java集合框架之LinkedList浅析 一.LinkedList综述: 1.1LinkedList简介 同ArrayList一样,位于java.util包下的LinkedList是Java集合框架 ...
- Java——集合框架之ArrayList,LinkedList,迭代器Iterator
概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...
- Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和性能分析)
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
随机推荐
- nand flash 扇区的管理以及初始化
(1)首先需要了解NAND FLASH的结构.如图: 以镁光MT29F4G08BxB Nand Flash为例,这款Flash(如上图)以4个扇区(sector)组成1个页(page),64个页(pa ...
- poj 2411 Mondriaan's Dream(状态压缩dP)
题目:http://poj.org/problem?id=2411 Input The input contains several test cases. Each test case is mad ...
- hibernate 中id生成策略
数据库的设计和操作中,我们通常会给表建立主键. 主键,可以分为自然主键和代理主键. 自然主键表示:采用具有业务逻辑含义的字段作为表的主键.比如在用户信息表中,采用用户的身份证号码作为主键.但是这样一来 ...
- fil_space_t
typedef struct fil_space_struct fil_space_t; /** Tablespace or log data space: let us call them by a ...
- ti processor sdk linux am335x evm /bin/setup-host-check.sh hacking
#!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-host-check.sh hacking # 说明: # 本文主要对TI的sdk ...
- HDU 1863 畅通工程(最小生成树,prim)
题意: 给出图的边和点数,要求最小生成树的代价,注:有些点之间是不可达的,也就是可能有多个连通图.比如4个点,2条边:1-2,3-4. 思路: 如果不能连通所有的点,就输出‘?’.之前以为每个点只要有 ...
- SharePoint 2010 列表项事件接收器 ItemAdded 的使用方法
列表项事件处理器是继承于Microsoft.SharePoint.SPItemEventReceiver的类,Microsoft.SharePoint.SPItemEventReceiver类提供了许 ...
- Log4NET简介
log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库等)的工具. 前提 最近做项目需要记录系统日志和用 ...
- link 参数
-all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possi ...
- HDU 5122 K.Bro Sorting
K.Bro Sorting Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others) Tot ...