扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

Java鏁版嵁缁撴瀯PriorityQueue鎬庝箞浣跨敤

扬州沐宇科技
2023-12-19 23:24:17
Java

PriorityQueue鏄竴涓湁搴忕殑闃熷垪锛岄€氬父鐢ㄤ簬瀹炵幇鍫嗭紙heap锛夋暟鎹粨鏋勩€?/p>

棣栧厛锛岃浣跨敤PriorityQueue锛岄渶瑕佸鍏ava.util.PriorityQueue绫汇€?/p>

鐒跺悗锛屽彲浠ュ垱寤轰竴涓狿riorityQueue瀵硅薄锛屾寚瀹氬厓绱犵殑绫诲瀷銆備緥濡傦紝鍒涘缓涓€涓暣鏁扮被鍨嬬殑PriorityQueue锛?/p>

import java.util.PriorityQueue;

PriorityQueue<Integer> pq = new PriorityQueue<>();

鎺ヤ笅鏉ワ紝鍙互浣跨敤add()鎴杘ffer()鏂规硶灏嗗厓绱犳坊鍔犲埌PriorityQueue涓€備緥濡傦紝娣诲姞涓€浜涙暣鏁板埌PriorityQueue涓細

pq.add(5);
pq.add(10);
pq.add(3);

鍏冪礌灏嗘寜鐓у畠浠殑鑷劧椤哄簭锛堝崌搴忥級杩涜鎺掑簭銆?/p>

浣犲彲浠ヤ娇鐢╬eek()鏂规硶鑾峰彇PriorityQueue涓殑鏈€灏忓厓绱狅紝浣跨敤poll()鏂规硶鑾峰彇骞跺垹闄riorityQueue涓殑鏈€灏忓厓绱犮€備緥濡傦細

System.out.println(pq.peek());  // 杈撳嚭3
System.out.println(pq.poll());  // 杈撳嚭3锛屽苟浠嶱riorityQueue涓Щ闄?

浣犱篃鍙互浣跨敤size()鏂规硶鑾峰彇PriorityQueue涓厓绱犵殑涓暟锛宨sEmpty()鏂规硶鍒ゆ柇PriorityQueue鏄惁涓虹┖銆備緥濡傦細

System.out.println(pq.size());     // 杈撳嚭2
System.out.println(pq.isEmpty());  // 杈撳嚭false

姝ゅ锛孭riorityQueue杩樻彁渚涗簡涓€浜涘叾浠栨柟娉曪紝渚嬪remove()鐢ㄤ簬鍒犻櫎鎸囧畾鐨勫厓绱狅紝contains()鐢ㄤ簬鍒ゆ柇PriorityQueue鏄惁鍖呭惈鎸囧畾鍏冪礌绛夈€?/p>

闇€瑕佹敞鎰忕殑鏄紝PriorityQueue涓嶅厑璁告坊鍔爊ull鍏冪礌銆?/p>

鍙﹀锛屽鏋滀綘鎯宠嚜瀹氫箟鍏冪礌鐨勬帓搴忔柟寮忥紝鍙互浼犲叆涓€涓狢omparator瀵硅薄缁橮riorityQueue鐨勬瀯閫犲嚱鏁般€備緥濡傦紝鍒涘缓涓€涓寜鐓у厓绱犵殑缁濆鍊煎ぇ灏忚繘琛屾帓搴忕殑PriorityQueue锛?/p>

PriorityQueue<Integer> pq = new PriorityQueue<>((a, b) -> Math.abs(a) - Math.abs(b));

杩欐牱锛孭riorityQueue涓殑鍏冪礌灏嗘寜鐓у畠浠殑缁濆鍊煎ぇ灏忚繘琛屾帓搴忋€?/p>

扫码添加客服微信