写在前面的话:读书破万卷,编码如有神
--------------------------------------------------------------------
下文主要对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)的更多相关文章

  1. 内功心法 -- java.util.LinkedList<E> (3)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  2. 内功心法 -- java.util.LinkedList<E> (4)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  3. 内功心法 -- java.util.LinkedList<E> (5)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  4. 内功心法 -- java.util.LinkedList<E> (7)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  5. 内功心法 -- java.util.LinkedList<E> (8)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  6. 内功心法 -- java.util.LinkedList<E> (1)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  7. 内功心法 -- java.util.LinkedList<E> (2)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  8. java.util.ArrayList、java.util.vector和java.util.LinkedList (JDK 1.8.0_111)

    一.java.util.ArrayList 1.1 ArrayList 继承结构 ArrayList实现了RandomAccess,可以随机访问(其实就是通过数组下标访问):实现了Cloneable, ...

  9. JDK1.8源码(六)——java.util.LinkedList 类

    上一篇博客我们介绍了List集合的一种典型实现 ArrayList,我们知道 ArrayList 是由数组构成的,本篇博客我们介绍 List 集合的另一种典型实现 LinkedList,这是一个有链表 ...

随机推荐

  1. JS设计模式——4.继承(概念)

    类式继承 0.构造函数 一个简单的Person类 function Person(name){ this.name = name; } Person.prototype.getName = funct ...

  2. python中赋值、浅拷贝、深拷贝详解(转)

    一.赋值 >>> a = [1, 2, 3]>>> b = a>>> print(id(a), id(b), sep='\n')139701469 ...

  3. 使用JSON语法创建JS对象(重要)

    JS对象的键值可以加单引号或者不加或者加双引号 JSON语法提供了一种更简单的方式来创建对象,可以避免书写函数,也可避免用new关键字,可以直接创建一个JS对象,使用一个花括号,然后将每个属性写成&q ...

  4. 【转载】如何解决failed to push some refs to git

    在使用git 对源代码进行push到gitHub时可能会出错,信息如下   此时很多人会尝试下面的命令把当前分支代码上传到master分支上. $ git push -u origin master ...

  5. C# 加密解密以及sha256不可逆加密案例

    class Program { static void Main(string[] args) { string aa = "身份证"; string bb = "key ...

  6. Machine Learning系列--EM算法理解与推导

    EM算法,全称Expectation Maximization Algorithm,译作最大期望化算法或期望最大算法,是机器学习十大算法之一,吴军博士在<数学之美>书中称其为“上帝视角”算 ...

  7. Java network programming-guessing game

    猜数字游戏 游戏的规则如下: 当客户端第一次连接到服务器端时,服务器端生产一个[0,50]之间的随机数字,然后客户端输入数字来猜该数字,每次客户端输入数字以后,发送给服务器端,服务器端判断该客户端发送 ...

  8. Python3中字符串的编码与解码以及编码之间转换(decode、encode)

    一.编码 二.编码与解码 Python3中对py文件的默认编码是urf-8.但是字符串的编码是Unicode. 由于Unicode采用32位4个字节来表示一个字符,存储和传输太浪费资源,所以传输和存储 ...

  9. [ python ] 字符串的操作及作业题

    字符串的操作方法 capitalize() : 首字母大写 s1 = 'my heart will go on' print(s1.capitalize()) # 首字母大写 # 执行结果: # My ...

  10. 使用qt+visa实现程控

    曾经在如何使用VS2010调用visa进行程控中使用vs2010+visa 实现了程控最简单的Demo,现实现Qt实现visa的Demo ===== 本人诚接各种程控开发项目 ===== 软件环境 系 ...