鱼C论坛

 找回密码
 立即注册
查看: 3250|回复: 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.代码辅助理解
package collection;

import java.util.ArrayDeque;
import java.util.Deque;
import static java.lang.System.out;

public class Stack {
        private Deque elems = new ArrayDeque();
        private int capacity;

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

        public boolean push(Object elem) {
                if (isFull()) {
                        return false;

                }
                return elems.offerFirst(elem);
        }

        private boolean isFull() {

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

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

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

        public int size() {
                return elems.size();
        }

        public static void main(String[] args) {

                Stack stack = new Stack(5);
                stack.push("Justin");
                stack.push("Monica");
                stack.push("Irene");
                out.println(stack.pop());
                out.println(stack.pop());
                out.println(stack.pop());

        }

}
结果是——

Justin
Monica
Irene

ps.import static是静态导入







评分

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

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 12:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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