用html5制作个人网站,航空港建设局网站,网站认证必须做么,国家补贴软件网站开发政策介绍#xff1a; 队列是FIFO#xff08;先进先出#xff09;抽象数据类型#xff08;ADT#xff09;。 换句话说#xff0c;按插入顺序将元素删除。 java.util.Queue是Java 中的接口#xff0c;并且从java.util.Collection扩展。 一些常用的Queue实现类包括LinkedList 队列是FIFO先进先出抽象数据类型ADT。 换句话说按插入顺序将元素删除。 java.util.Queue是Java 中的接口并且从java.util.Collection扩展。 一些常用的Queue实现类包括LinkedList ArrayDeque和PriorityQueue 。 队列类型 队列有两个主要类别 1.阻塞队列这些是具有固定容量的有界队列。 这意味着我们必须在创建队列时提供队列的容量。 java.util.concurrent包中提供了有界队列的实现类。 例如一个ArrayBlockingQueue 。 2.非阻塞队列 java.util包下的队列实现属于此队列类别。 例如 LinkedList或PriorityQueue 。 顾名思义 这些元素是无限制的我们可以根据需要插入任意数量的元素。 关键方法 让我们看一下Queue接口公开的最常用方法 引发异常 下面的方法将尝试对队列进行操作。 如果由于某种原因例如由于容量问题而失败则会抛出运行时异常 1. 使用add 我们可以将元素添加到队列中 QueueInteger queue new LinkedList();queue.add(1);
queue.add(2);
queue.add(3); 如果元素插入成功则返回true 。 否则它将引发IllegalStateException。 2. 我们可以使用remove方法来检索和删除队列头部的元素 int removedItem queue.remove();System.out.println(removedItem); //prints 1System.out.println(queue); // [2, 3] 请注意我们从队列中删除了第一个元素。 因此现在我们的队列仅包含[23] 。 在空队列上调用时此方法将引发NoSuchElementException 。 3. 此方法将仅返回队列的head元素而不会将其删除 int topItem queue.element(); // 2System.out.println(queue); //[2, 3] 请注意我们的队列仍然包含两个元素。 就像remove一样 它将为空队列抛出NoSuchElementException异常。 返回特殊值 现在我们将介绍上述方法的细微变化。 这些方法不会抛出异常。 当他们无法执行操作时他们宁愿返回一些值 1. 就像add一样 我们有一个offer方法可以用来插入元素 QueueInteger queue new LinkedList();
queue.offer(1);
queue.offer(2);
queue.offer(3); 如果无法插入它将返回false。 2. 我们可以使用poll检索和删除元素 int removedItem queue.poll(); // returns 1System.out.println(queue); //[2, 3] 对于空队列它将仅返回一个空值。 3. 与element类似它只是检索队列的最前面的元素 int topItem queue.peek(); // 2System.out.println(queue); //still [2, 3] 由于我们已经删除了1 因此这里的顶部元素是2 。 如果在空队列中使用此方法则将获得空值。 其他有用的方法 由于Queue从Collection接口扩展而来因此它也从该接口继承方法。 一些有用的包括 1. size返回队列的大小 2. contains如果元素存在于队列中则返回true 3. isEmpty 对于空队列它将返回true 。 否则为false 。 结论 在本文中我们讨论了Java中的Queue接口。 我们介绍了此接口公开的所有主要方法。 成为第一个发表评论的人。 翻译自: https://www.javacodegeeks.com/2019/05/java-queue-interface.html