首页 > 编程语言 >卡码java基础课 | 20.排队取奶茶(队列)

卡码java基础课 | 20.排队取奶茶(队列)

时间:2024-03-25 20:01:26浏览次数:32  
标签:卡码 ArrayDeque java 队列 util import sc 20

学习内容:
队列的基本概念(队头、队尾)和特点(先入先出)
双端队列
入队、出队、获取队头元素和判断队列是否为空等基本操作
ArrayDeque的使用

重点归纳:
队列,先入先出,FIFO,first in first out。
双端队列,同时实现两端的添加和删除操作,即同时有队列和栈的特性。
使用方法:导入Queue接口和队列实现类ArrayDeque、LinkedList类。import java.util.Queue; import java.util.ArrayDeque。
常用方法:
isEmpty(): 判断队列是否为空,如果队列为空返回true, 否则返回false。
add(): 入队操作,将新的元素添加到队列的尾部。
poll(): 出队操作,获取并移除队列的头部元素。
peek(): 访问队列的头部元素,但不会将其移除。
size(): 获取队列的长度,即队列中元素的数量。

例题:


解:

点击查看代码
import java.util.Scanner;
import java.util.Queue;
import java.util.ArrayDeque;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        Queue<String> q = new ArrayDeque<>();
        for(int i = 0; i < n; i++){
            String name = sc.next();
            q.add(name);
        }
        int m = sc.nextInt();
        for(int j = 0; j < m; j++){
            if(sc.nextInt() == 1){
                if(q.isEmpty() == false){
                    q.poll();
                }
            }
            else{
                q.add(sc.next());
            }
        }
        
        if(q.isEmpty()){
            System.out.println("There are no more people in the queue.");
        }
        else{
            System.out.println(q.peek());
        }
        
        sc.close();
    }
}

标签:卡码,ArrayDeque,java,队列,util,import,sc,20
From: https://www.cnblogs.com/cyh-coding/p/18095190

相关文章

  • 一文搞懂JavaEE的接口
    在JavaEE(JavaEnterpriseEdition)开发环境中,编程意义上的“接口”(interface)和API接口虽然都涉及接口的概念,但它们属于不同层面的术语。1.编程意义上的“接口”(interface)在Java编程语言中,接口(interface)是一种引用类型,它是方法的集合,这些方法被定义在接口中,但没有实现(即没有方法......
  • JAVA面向对象高级三:匿名内部类
    1.认识匿名内部类: packagecom.itheima.匿名内部类;publicclasstest{publicstaticvoidmain(String[]args){//把这个匿名内部类编译成一个子类,然后会立即创建一个子类对象出来AnimalA=newAnimal(){@Overridepublicv......
  • day05 java位运算符
    位运算符&按位与&按位与:两位同时为1时返回1如:(5&3)=1000000000000010100000000000000110000000000000001同理:|按位或按位或,只要有一位为1可返回1。。。<<、>>、>>> 左右移运算符<<左移运算符 //<<:左移(在一定范围内每向左移一位原来的值乘以2)......
  • day05 java流程控制语句机构
    ifelse说明:1.如果if语句中只有一条执行语句那么大括号是可以省略的。2.就近原则:else离谁近就和谁是一对3.初学者最好不要省略大括号if(true)if(false)System.out.println("我是小龙哥");else//就近原则:else离谁近就和谁是一对......
  • day03 java自动类型转换 和 强制类型转换
    自动类型转换定义将取值范围小的类型自动提升为取值范围大的类型。注意比较的不是所占内存大小,而是数据类型取值范围的大小,如int整数类型和float浮点类型所占内存数大小相同但是浮点数采用ieee754标准计数法表示范围更大,所以int可以变为float并且不损失精度。当把存储......
  • Java并发编程:第六章 阻塞队列
    文章目录一、BlockQueue1、特点2、阻塞队列常用方法二、常见的BlockingQueue1、介绍2、ArrayBlockingQueue3、LinkedBlockingQueue4、PriorityBlockingQueue5、LinkedTransferQueue6、SynchrousQueue7、DelayQueue一、BlockQueue1、特点阻塞队列与普通队列(ArrayDe......
  • Java实现轮询调度算法(Round Robin)
    Java实现轮询调度算法(RoundRobin)Java实现轮询调度算法(RoundRobin)引言在计算机科学中,轮询调度算法(RoundRobin)是一种常见的任务调度算法。它被广泛应用于操作系统、网络路由器、负载均衡器等领域。本文将介绍轮询调度算法的原理、实现以及在Java中的应用。轮询调度算法原理......
  • 服务器购买攻略:2024年腾讯云服务器购买详细方法全解析
     随着互联网的不断发展,越来越多的企业或个人需要购买云服务器来支持其业务。作为国内领先的云服务提供商,腾讯云提供了多种购买方式以满足不同用户的需求。本文将为您详细介绍腾讯云服务器的三种购买方式及其优缺点,帮助您选择最适合自己的购买方案。一、活动购买固定机型腾讯......
  • 2024年腾讯云主机代金券获取攻略:无门槛代金券领取方法全解析
    在数字化时代,云服务已成为公司和个人不可或缺的一部分。作为国内领先的云服务提供商,腾讯云不仅提供了稳定、高效的云服务,还经常为用户带来各种福利,其中就包括珍贵的代金券。PS:云产品活动,腾讯云采购季,点击https://2bcd.com/go/tx/进入腾讯云最新活动页领8888元代金券礼包,腾......
  • Java并发编程学习
    1.4wait()与notify例如消息队列生成和消费消息时候,可以用 wait(), notify通知对方wait和notify必须在synchronized方法里。1) wait释放当前线程的锁,线程进入等待状态,直到其他线程调用该对象的notify2)notify其他随机一个线程对应的等待状态解除。可以竞争当......