API学习PriorityQueue

2024-08-22 07:58
文章标签 学习 api priorityqueue

本文主要是介绍API学习PriorityQueue,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

package com.wonders.week01.collection;import java.util.Iterator;
import java.util.PriorityQueue;/*** JDK1.7* PriorityQueue优先级队列* (1)继承自 AbstractQueue* (2)它是一个基于优先级堆的无界优先队列。* (3)优先级队列的元素的顺序是按照自然顺序或者是按照它们创建的时候所采用的构造器。* (4)优先级队列是不允许null的元素* (5)优先级队列依赖于自然排序但是插入不能比较的对象。* (6)该队列的头是指定顺序的最小元素,如果最小值绑定了多个元素,头元素是这些元素中的一个。* (7)优先级队列可以通过poll, remove, peek, 和element这些方法来获取队列的头。* (8)一个优先级队列是无界的,在队列的内部存在一个用来管理存储元素的数组大小的容量的值。一般情况下,该容量大小至少和队列的大小相同。* (9)当元素被添加到一个优先级队列中的时候,它的容量大小就会自动的增长。增长的策略具体是不清楚的。* (10)这个类及其迭代器实现了集合和迭代器接口的所有可选方法,其中Iterator提供了iterator() 方法,但是不可以保证按照任何特定的顺序来遍历优先级队列的元素。* (11)是一个非线程安全的集合类。如果有任何线程修改队列时,多个线程是不可以同时访问同一个优先级队列的。* (12)如果有多个线程需要同时访问优先级队列,可以采用线程安全类 PriorityBlockingQueue。* (13)其中这些方法offer, poll, remove() 和 add的时间复杂度是log(n),remove(Object)和contains(Object)是线性的时间复杂度,peek, element和size都是常数阶的算法时间复杂度* @author liyongyong**/
public class PriorityQueueTest {public static void main(String[] args) {PriorityQueue<Integer> queue = new PriorityQueue<Integer>();PriorityQueue<Integer> queue2 = new PriorityQueue<Integer>();queue2.add(2);queue2.add(4);//把元素插入到优先级队列中queue.add(1);queue.add(2);queue.add(3);queue.add(4);queue.add(3);queue.offer(2);//让队列中的元素出队列,Integer peek = queue.peek();System.out.println("优先级队列出队列的元素 : " + peek);//判断队列中是否包含该元素,包含返回true,否则返回falseboolean flag = queue.contains(1);System.out.println("是否存在 : " + flag);//是否该队列包含该集合,如果包含则返回true,否则返回falseboolean contains = queue.containsAll(queue2);System.out.println("queue是否包含queue2 : " + contains);//获取队列的头元素Integer element = queue.element();System.out.println("元素是 : " + element);//遍历优先级队列中的每个元素Iterator<Integer> iterator = queue.iterator();System.out.println("使用iterator来遍历优先级队列中的元素:");while (iterator.hasNext()) {Integer integer = (Integer) iterator.next();System.out.print("	" + integer);}System.out.println();//检索并删除此队列的头部,如果此队列为空,则返回null。Integer poll = queue.poll();System.out.println(poll);//遍历优先级队列中的每个元素Iterator<Integer> iterator1 = queue.iterator();System.out.println("使用poll方法后遍历优先级队列中的元素 : ");while (iterator1.hasNext()) {Integer integer = (Integer) iterator1.next();System.out.print("	" + integer);}}
}

这里写图片描述

在这里插入图片描述

这篇关于API学习PriorityQueue的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1095688

相关文章

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Java对接Dify API接口的完整流程

《Java对接DifyAPI接口的完整流程》Dify是一款AI应用开发平台,提供多种自然语言处理能力,通过调用Dify开放API,开发者可以快速集成智能对话、文本生成等功能到自己的Java应用中,本... 目录Java对接Dify API接口完整指南一、Dify API简介二、准备工作三、基础对接实现1.

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.