鱼C论坛

 找回密码
 立即注册
查看: 2617|回复: 0

[学习笔记] Java暑期学习Day39

[复制链接]
发表于 2017-8-14 23:06:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天是第39天,渐渐的要把思绪理清楚 (大眼萌光头QAQ)


                               
登录/注册后可看大图
<。)#)))≦

支持队列操作的Queue


  1.API之Queue
  public interface Queue<E>
  extends Collection<E>

  <收集的对象加入至尾端,取得对象时从前端>
   除了基本的Collection操作之外,队列还提供额外的插入,提取和检查操作。

  

这些方法中的每一种都有两种形式:如果操作失败,则抛出一个异常,另一种返回一个特殊值( null或false ,具体取决于操作)。 插入操作的后一种形式专门设计用于容量限制的Queue实现; 在大多数实现中,插入操作不能失败。







Summary of Queue methods Throws exception Returns special value Insert add(e) offer(e) Remove remove() poll() Examine element() peek()


  (显著区别Queue接口在add()、remove、element()等方法操作失败时会抛出异常,而offer()、poll()、peek()等方法操作失败时会返回特定值


Modifier and Type(修饰符和类型)
Method and Description(方法与说明)
boolean add(E e)
将指定的元素插入到此队列中,如果可以立即执行此操作,而不会违反容量限制, true在成功后返回  IllegalStateException
如果当前没有可用空间,则抛出IllegalStateException
E element()
检索,但不删除,这个队列的头。
  boolean offer(E e)
如果在不违反容量限制的情况下立即执行,则将指定的元素插入到此队列中。
  E peek()
检索但不删除此队列的头,如果此队列为空,则返回 null 。
  E poll()
检索并删除此队列的头,如果此队列为空,则返回 null 。
  E remove()
检索并删除此队列的头。

  
ps.接口Deque与其有类似之处——
  如Deque中定义addFirst()、getLast()等方法操作失败时会抛出异常
            而offerFirst()、pollLast()等方法操作失败时会返回特定值


                               
登录/注册后可看大图



同时Queue中某些方法与Deque中某些方法同义(。&#12539;&#8704;&#12539;)ノ
  如Queue中的add()相当于Deque中的addLast()
             offer()             offerLast()
             poll()              pollFirst()
             remove()            removeFirst()
             element()           getFirst()
             peek()              peekFirst()


2.代码辅助理解
  1. package collection;

  2. import java.util.ArrayDeque;
  3. import java.util.Deque;
  4. import static java.lang.System.out;

  5. public class Stack {
  6.         private Deque elems = new ArrayDeque();
  7.         private int capacity;

  8.         public Stack(int capacity) {
  9.                 this.capacity = capacity;
  10.         }

  11.         public boolean push(Object elem) {
  12.                 if (isFull()) {
  13.                         return false;

  14.                 }
  15.                 return elems.offerFirst(elem);
  16.         }

  17.         private boolean isFull() {

  18.                 return elems.size() + 1 > capacity;
  19.         }

  20.         public Object pop() {
  21.                 return elems.pollLast();
  22.         }

  23.         public Object peek() {
  24.                 return elems.peekLast();
  25.         }

  26.         public int size() {
  27.                 return elems.size();
  28.         }

  29.         public static void main(String[] args) {

  30.                 Stack stack = new Stack(5);
  31.                 stack.push("Justin");
  32.                 stack.push("Monica");
  33.                 stack.push("Irene");
  34.                 out.println(stack.pop());
  35.                 out.println(stack.pop());
  36.                 out.println(stack.pop());

  37.         }

  38. }
复制代码
结果是——

Justin
Monica
Irene

ps.import static是静态导入







评分

参与人数 1鱼币 +2 收起 理由
小甲鱼 + 2 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 13:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表