门户网站排版宁德市建设局网站

张小明 2026/1/19 19:13:21
门户网站排版,宁德市建设局网站,移动互联网以什么为技术核心,网址大全快捷怎么来的文章目录Ⅰ. Stack#xff08;不推荐使用了☠#xff09;Ⅱ. QueueⅢ. DequeⅣ. PriorityQueue堆排序Ⅴ. MapⅥ. SetⅠ. Stack#xff08;不推荐使用了☠#xff09; 常见方法如下所示#xff1a; 其中 peek() 就相当于是 std::stack 中的 top()。 注意事项#xff1a; 在…文章目录Ⅰ. Stack不推荐使用了☠Ⅱ. QueueⅢ. DequeⅣ. PriorityQueue堆排序Ⅴ. MapⅥ. SetⅠ. Stack不推荐使用了☠常见方法如下所示其中peek()就相当于是std::stack中的top()。注意事项在比较元素相同的时候要使用equals()因为就算存储的是整数StackInteger类型里面仍然是引用类型不能直接通过来比较因为Stack继承于Vector而Vector中还有很多实用的方法比如size()方法等都是可以使用的但由于Vector比较老并且这种设计违反了最小接口原则所以现在不推荐使用Stack而是用Deque来替代如下面代码所示Java推荐使用Deque接口的实现类比如ArrayDequeLinkedListDequeIntegerstacknewArrayDeque();// 使用Deque代替Stackstack.push(1);// 入栈stack.pop();// 出栈stack.peek();// 查看栈顶stack.isEmpty();// 是否为空Ⅱ. Queue注意事项Queue 是一个接口要使用实现类来实现常用LinkedList、ArrayDeque、PriorityQueue来实现一个队列可以实现栈但是一个栈实现不了队列225. 用队列实现栈、232. 用栈实现队列Ⅲ. DequeDeque是一个接口使用时必须创建LinkedList或者ArrayDeque类型的对象。在实际工程中使用Deque接口是比较多的栈和队列均可以使用该接口。DequeIntegerstacknewArrayDeque();// 双端队列的线性实现DequeIntegerqueuenewLinkedList();// 双端队列的链式实现操作类型方法名描述抛出异常版本返回特殊值版本插入addFirst(e)在队首插入元素如果容量受限会抛出IllegalStateExceptionofferFirst(e) - 失败返回falseaddLast(e)在队尾插入元素同上offerLast(e) - 失败返回false移除removeFirst()移除并返回队首元素队列为空时抛出NoSuchElementExceptionpollFirst() - 队列为空返回nullremoveLast()移除并返回队尾元素同上pollLast() - 队列为空返回null查看getFirst()查看队首元素(不移除)队列为空时抛出NoSuchElementExceptionpeekFirst() - 队列为空返回nullgetLast()查看队尾元素(不移除)同上peekLast() - 队列为空返回null栈操作push(e)将元素压入栈可能抛出IllegalStateException无pop()弹出栈顶元素栈为空时抛出NoSuchElementException无其他size()返回队列中元素数量--isEmpty()判断队列是否为空--contains(o)判断是否包含指定元素--remove(o)移除第一个匹配的元素元素不存在时抛出NoSuchElementException无Ⅳ. PriorityQueueJava集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列PriorityQueue是线程不安全的PriorityBlockingQueue是线程安全的下面主要介绍PriorityQueue。使用注意事项使用时必须导入包import java.util.PriorityQueue;PriorityQueue中放置的元素必须要能够比较大小不能插入无法比较大小的对象否则会抛出ClassCastException异常。不能插入null对象否则会抛出NullPointerException。PriorityQueue默认情况下是小堆。创建自定义大小堆的比较器写法如下所示以Integer为例// 推荐使用 Comparator 而不是 Comparable因为前者比较灵活、侵入性小// 创建小堆classlesscmpimplementsComparatorInteger{Overridepublicintcompare(Integero1,Integero2){returno1.compareTo(o2);}}// 创建大堆classgreatercmpimplementsComparatorInteger{Overridepublicintcompare(Integero1,Integero2){returno2.compareTo(o1);}}publicstaticvoidmain(String[]args){PriorityQueueIntegerpqnewPriorityQueue();// 默认为小堆pq.add(10);pq.add(20);pq.add(15);while(!pq.isEmpty()){System.out.println(pq.poll());};PriorityQueueIntegerpq1newPriorityQueue(newgreatercmp());pq1.add(10);pq1.add(20);pq1.add(15);while(!pq1.isEmpty()){System.out.println(pq1.poll());}// 使用lambda表达式创建大堆PriorityQueueIntegerpq2newPriorityQueue((o1,o2)-{returno1.compareTo(o2)});pq2.add(10);pq2.add(20);pq2.add(15);while(!pq2.isEmpty()){System.out.println(pq2.poll());}}// 运行结果101520201510201510堆排序升序建大堆降序建小堆时间复杂度O(nlogn)Ⅴ. MapMap是一个接口类该类没有继承自Collection该类中存储的是K,V结构的键值对并且K一定是唯一的不能重复。https://docs.oracle.com/javase/8/docs/api/index.html☠注意事项内置类型不能直接来实例化HashMap必须要找其对应的包装类型在TreeMap中的key不能为空否则就会抛NullPointerException异常value可以为空而HashMap的key和value都可以为空。Map中键值对的Key不能直接修改value可以修改如果要修改key只能先将该key删除掉然后再来进行重新插入。HashMap的底层实现中当某个桶中链表元素超过8个并且桶的个数超过64个此时会将该桶中的链表转化为红黑树维护降低高度采用方法如下所示其中getOrDefalut()方法通常用于统计次数的时候简化代码如下所示publicListStringtopKFrequent(String[]words,intk){// 统计字符串出现个数MapString,IntegerhashnewHashMap();for(inti0;iwords.length;i){hash.put(words[i],hash.getOrDefault(words[i],0)1);// 这样子来简化代码}...}Map如HashMap、TreeMap等 自身没有迭代器即没有实现Iterator接口但它的视图对象keySet、entrySet、values都可以迭代如下所示// 遍历 keySet()只要 keyfor(Kkey:map.keySet()){System.out.println(key);}// 遍历 values()只要 valuefor(Vvalue:map.values()){System.out.println(value);}// 遍历 entrySet()需要 key 和 value⭐⭐⭐⭐⭐⭐⭐推荐for(Map.EntryK,Ventry:map.entrySet()){System.out.println(entry.getKey() entry.getValue());}上述的entrySet()是Map接口中的一个方法返回一个包含了所有 键值对 的Set集合这些键值对就是Map.EntryK, V对象它们每一个都包含两个元素key和value。// 也就是说上面的for-each可以转化为迭代器来处理如下所示这里只举例entrySetIteratorMap.EntryString,Integeritmap.entrySet().iterator();while(it.hasNext()){System.out.println(it.next().getKey() it.next().getValue());}TreeMap和HashMap的区别如下图所示。其中因为HashMap在比较内容的时候是根据hashCode()来确定key是在哪个桶中的而根据equals()来确定是桶中的哪个元素所以在HashMap中存放自定义类型的时候需要重写该自定义类型的equals()和hashCode()方法。Ⅵ. SetSet与Map主要的区别Set是继承自Collection的接口类Set中只存储了Key。但实际上底层源码实现是让Set去调用Map的接口只不过传入的value是一个默认的Object对象而只需要关心key即可。常用方法如下所示注意事项Set最大的功能就是对集合中的元素进行去重实现Set接口的常用类有TreeSet和HashSet还有一个LinkedHashSetLinkedHashSet是在HashSet的基础上维护了一个双向链表来记录元素的插入次序。TreeSet中不能插入null的key而HashSet可以。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做多语言网站多少钱网站建设的部署与发布

在日常的计算机使用中,我们偶尔会遭遇一种令人困惑且担忧的现象:原本正常的文件夹突然变成了.exe可执行文件。这一异变不仅让文件夹失去了原有的功能,更隐藏着数据丢失的风险。本文将深入剖析文件夹变成exe的现象,并介绍一种高效的…

张小明 2026/1/17 22:45:34 网站建设

php空间放多个网站岳阳房产信息网

图形与特效:文本排版中的创意技巧 在文本排版中,我们常常需要一些特殊的图形和效果来增强文本的表现力和可读性。本文将详细介绍一些常见的排版技巧,包括局部运动、绝对运动、线条绘制、曲线绘制等,帮助你在排版中实现更多创意。 局部垂直运动与字体大小变化 在排版中,…

张小明 2026/1/17 22:45:35 网站建设

thinkphp 企业网站源码sem

ControlNet Aux中latent_format属性缺失问题的深度技术解析 【免费下载链接】comfyui_controlnet_aux 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 在AI绘画工作流的构建过程中,许多用户在使用ComfyUI ControlNet Aux扩展时遇到了…

张小明 2026/1/17 22:45:35 网站建设

做设计兼职的网站有哪些工作南京网站外包

(100分)- 表达式括号匹配(Java & JS & Python & C)题目描述(1(23)*(3(80))1-2)这是一个简单的数学表达式,今天不是计算它的值,而是比较它的括号匹配是否正确。前面这个式子可以简化为(()(()))这样的括号我们认为它是匹配正确的,而((())这样的…

张小明 2026/1/17 22:45:36 网站建设

最优的郑州网站建设怎么样做网站代理商

2025终极DamaiHelper抢票神器完整使用教程 【免费下载链接】damaihelper 大麦助手 - 抢票脚本 项目地址: https://gitcode.com/gh_mirrors/dam/damaihelper DamaiHelper大麦助手是一款免费开源的Python抢票脚本,专门针对大麦网热门演出票务抢购难题设计。这款…

张小明 2026/1/17 22:45:36 网站建设

网站开发公司特点杭州经济技术开发区建设局网站

Seed-Coder-8B-Base是否支持中文变量命名?实测告诉你答案 在如今AI编程助手遍地开花的时代,开发者早已不再满足于“能不能写代码”,而是更关心:“它懂我吗?”——尤其是当我们想用“用户数量”代替user_count、用“计算…

张小明 2026/1/17 22:45:37 网站建设