内功心法 -- java.util.LinkedList<E> (6)
写在前面的话:读书破万卷,编码如有神
--------------------------------------------------------------------
下文主要对java.util.LinkedList<E>的5个队列操作进行介绍,主要内容包括:
1、LinkedList常用的5个队列操作介绍
参考内容:
1、JDK源码(1.7)
--------------------------------------------------------------------
1、LinkedList常用的5个队列操作介绍
(1) E peek()
功能: 获取,但不移除此双端队列的头部元素(如果此双端队列为空,则返回 null)
示例代码:
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
/*********测试LinkedList的'E peek()'方法的使用**********/
//创建一个LinkedList对象
LinkedList<Student> linkedList = new LinkedList<Student>();
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu1 = new Student(1,"zhangsan",20);
linkedList.add(stu1);
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu2 = new Student(2,"lisi",21);
linkedList.add(stu2);
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu3 = new Student(3,"wangwu",22);
linkedList.add(stu3);
System.out.println("linkedList:" + linkedList);
System.out.println("linkedList.peek():" + linkedList.peek());
System.out.println("linkedList:" + linkedList);
}
}
运行结果:
linkedList:[Student [stuId=1, stuName=zhangsan, stuAge=20], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]
linkedList.peek():Student [stuId=1, stuName=zhangsan, stuAge=20]
linkedList:[Student [stuId=1, stuName=zhangsan, stuAge=20], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]
源代码如下:
public E peek() {
//引用f指向此双端队列的头部
final Node<E> f = first;
//返回此双端队列的头部元素
return (f == null) ? null : f.item;
}
(2) E element()
功能: 获取,但不移除此双端队列所表示的队列的头部
示例代码:
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
/*********测试LinkedList的'E element()'方法的使用**********/
//创建一个LinkedList对象
LinkedList<Student> linkedList = new LinkedList<Student>();
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu1 = new Student(1,"zhangsan",20);
linkedList.add(stu1);
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu2 = new Student(2,"lisi",21);
linkedList.add(stu2);
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu3 = new Student(3,"wangwu",22);
linkedList.add(stu3);
System.out.println("linkedList:" + linkedList);
System.out.println("linkedList.element():" + linkedList.element());
System.out.println("linkedList:" + linkedList);
}
}
运行结果:
linkedList:[Student [stuId=1, stuName=zhangsan, stuAge=20], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]
linkedList.element():Student [stuId=1, stuName=zhangsan, stuAge=20]
linkedList:[Student [stuId=1, stuName=zhangsan, stuAge=20], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]
源代码如下:
/*
获取,但不移除此双端队列所表示的队列的头部(如果此队列为空,会抛出异常)
*/
public E element() {
//调用内部方法getFirst()实现
return getFirst();
} public E getFirst() {
final Node<E> f = first;
if (f == null)
throw new NoSuchElementException();
return f.item;
}
(3) E poll()
功能: 获取并移除此双端队列所表示的队列的头部(如果此双端队列为空,则返回 null)
示例代码:
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
/*********测试LinkedList的'E poll()'方法的使用**********/
//创建一个LinkedList对象
LinkedList<Student> linkedList = new LinkedList<Student>();
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu1 = new Student(1,"zhangsan",20);
linkedList.add(stu1);
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu2 = new Student(2,"lisi",21);
linkedList.add(stu2);
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu3 = new Student(3,"wangwu",22);
linkedList.add(stu3);
System.out.println("linkedList:" + linkedList);
System.out.println("linkedList.poll():" + linkedList.poll());
System.out.println("linkedList:" + linkedList);
}
}
运行结果:
linkedList:[Student [stuId=1, stuName=zhangsan, stuAge=20], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]
linkedList.poll():Student [stuId=1, stuName=zhangsan, stuAge=20]
linkedList:[Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]
源代码如下:
/*
获取并移除此双端队列所表示的队列的头部;如果此双端队列为空,则返回 null
*/
public E poll() {
//引用f指向此双端队列的头部
final Node<E> f = first;
//获取并移除头部元素(调用unlinkFirst方法实现)
return (f == null) ? null : unlinkFirst(f);
}
(4) E remove()
功能: 获取并移除此双端队列所表示的队列的头部(如果此双端队列为空,则抛出异常)
示例代码:
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
/*********测试LinkedList的'E remove()'方法的使用**********/
//创建一个LinkedList对象
LinkedList<Student> linkedList = new LinkedList<Student>();
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu1 = new Student(1,"zhangsan",20);
linkedList.add(stu1);
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu2 = new Student(2,"lisi",21);
linkedList.add(stu2);
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu3 = new Student(3,"wangwu",22);
linkedList.add(stu3);
System.out.println("linkedList:" + linkedList);
System.out.println("linkedList.remove():" + linkedList.remove());
System.out.println("linkedList:" + linkedList);
}
}
运行结果:
linkedList:[Student [stuId=1, stuName=zhangsan, stuAge=20], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]
linkedList.remove():Student [stuId=1, stuName=zhangsan, stuAge=20]
linkedList:[Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]
源代码如下:
/*
获取并移除此双端队列所表示的队列的头部(如果此双端队列为空,则抛出异常)
*/
public E remove() {
//调用removeFirst方法实现
return removeFirst();
}
(5) boolean offer(E e)
功能:将指定元素插入此双端队列所表示的队列,如果成功,则返回 true
示例代码:
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
/*********测试LinkedList的'boolean offer(E e)'方法的使用**********/
//创建一个LinkedList对象
LinkedList<Student> linkedList = new LinkedList<Student>();
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu1 = new Student(1,"zhangsan",20);
linkedList.add(stu1);
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu2 = new Student(2,"lisi",21);
linkedList.add(stu2);
//创建一个Student对象,并将其添加到LinkedList对象中
Student stu3 = new Student(3,"wangwu",22);
linkedList.add(stu3);
System.out.println("linkedList:" + linkedList);
Student stu4 = new Student(4,"oopp",22);
System.out.println("linkedList.remove():" + linkedList.offer(stu4));
System.out.println("linkedList:" + linkedList);
}
}
运行结果:
linkedList:[Student [stuId=1, stuName=zhangsan, stuAge=20], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]
linkedList.remove():true
linkedList:[Student [stuId=1, stuName=zhangsan, stuAge=20], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22], Student [stuId=4, stuName=oopp, stuAge=22]]
源代码如下:
/*
将指定元素插入此双端队列所表示的队列,如果成功,则返回 true
*/
public boolean offer(E e) {
//调用内部方法add实现
return add(e);
}
--------------------------------------------------------------------
java.util.LinkedList<E>系列文章
java.util.LinkedList<E>(1) java.util.LinkedList<E>(2) java.util.LinkedList<E>(3)
java.util.LinkedList<E>(4) java.util.LinkedList<E>(5) java.util.LinkedList<E>(6)
java.util.LinkedList<E>(7) java.util.LinkedList<E>(8)
--------------------------------------------------------------------
相关知识
java.util.Collection<E> java.util.AbstractCollection<E> java.util.List<E>
java.util.AbstractList<E> java.util.Iterator<E> java.util.ListIterator<E>
Java中的标记接口 迭代器模式 Java中的深拷贝和浅拷贝 java.util.Arrays
java.util.Queue<E> java.util.Deque<E>
内功心法 -- java.util.LinkedList<E> (6)的更多相关文章
- 内功心法 -- java.util.LinkedList<E> (3)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 内功心法 -- java.util.LinkedList<E> (4)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 内功心法 -- java.util.LinkedList<E> (5)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 内功心法 -- java.util.LinkedList<E> (7)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 内功心法 -- java.util.LinkedList<E> (8)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 内功心法 -- java.util.LinkedList<E> (1)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 内功心法 -- java.util.LinkedList<E> (2)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- java.util.ArrayList、java.util.vector和java.util.LinkedList (JDK 1.8.0_111)
一.java.util.ArrayList 1.1 ArrayList 继承结构 ArrayList实现了RandomAccess,可以随机访问(其实就是通过数组下标访问):实现了Cloneable, ...
- JDK1.8源码(六)——java.util.LinkedList 类
上一篇博客我们介绍了List集合的一种典型实现 ArrayList,我们知道 ArrayList 是由数组构成的,本篇博客我们介绍 List 集合的另一种典型实现 LinkedList,这是一个有链表 ...
随机推荐
- UIAutomation Diagram
- RTC
RTC的英文全称是Real-Time Clock,翻译过来是实时时钟芯片. RTC是PC主板上的晶振及相关电路组成的时钟电路的生成脉冲主板上的晶振及相关电路组成的时钟电路的生成脉冲,,RTC经过825 ...
- 【转载】C#异常Retry通用类
//Retry机制 public static class Retry { /// <summary> /// 重试零个参数无返回值的方法 /// </summary> /// ...
- CTSC 2017 游记
惨啊,弱菜选手只报上了CTSC,去不了APIO. day -1 晚上的时候,坐上了去帝都的卧铺. 由于第二天就是luogu月赛round1,还得在火车上赶工出题... 颓了好长时间,把题面写出来了,用 ...
- Getting Started with Django Rest Framework and AngularJS
转载自:http://blog.kevinastone.com/getting-started-with-django-rest-framework-and-angularjs.html A ReST ...
- acm专题---键树
题目来源:http://hihocoder.com/problemset/problem/1014?sid=982973 #1014 : Trie树 时间限制:10000ms 单点时限:1000ms ...
- HDU 3018 Ant Trip (并查集求连通块数+欧拉回路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3018 题目大意:有n个点,m条边,人们希望走完所有的路,且每条道路只能走一遍.至少要将人们分成几组. ...
- 转载:Logistic回归原理及公式推导
转载自:AriesSurfer 原文见 http://blog.csdn.NET/acdreamers/article/details/27365941 Logistic回归为概率型非线性回归模型,是 ...
- PHP完整的AES加解密算法使用及例子(256位)
依赖PHP自身的mcrypt扩展 <?php class aes { // CRYPTO_CIPHER_BLOCK_SIZE 32 private $_secret_key = 'default ...
- mysql建立自增主键的插入,及自动插入当前时间
MYSQL里用这两个字段,几乎都是必须的. 以前都是自动建立的,现在手把手建立的时候,就要找资料来搞定了. 参考URL: http://blog.csdn.net/Weicleer/article/d ...