91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

priorityqueue java如何刪除元素

小樊
82
2024-11-16 02:50:24
欄目: 編程語言

在Java中,PriorityQueue是一個基于優先級的隊列。要刪除PriorityQueue中的元素,您可以使用poll()方法。這個方法會返回并刪除具有最高優先級的元素(默認情況下是自然順序或根據提供的Comparator)。

以下是一個簡單的示例:

import java.util.Comparator;
import java.util.PriorityQueue;

public class Main {
    public static void main(String[] args) {
        // 創建一個整數類型的優先隊列,默認是小頂堆
        PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();

        // 向優先隊列中添加元素
        priorityQueue.add(5);
        priorityQueue.add(3);
        priorityQueue.add(8);
        priorityQueue.add(1);

        // 刪除并返回具有最高優先級的元素(默認是小頂堆)
        int removedElement = priorityQueue.poll();
        System.out.println("Removed element: " + removedElement); // 輸出:Removed element: 1

        // 查看優先隊列中的元素
        System.out.println("Priority queue: " + priorityQueue); // 輸出:Priority queue: [3, 5, 8]
    }
}

如果您想要刪除具有特定值的元素,可以使用remove()方法。這個方法會刪除并返回具有指定值的第一個元素。請注意,如果沒有找到具有指定值的元素,remove()方法將返回null

以下是一個示例:

import java.util.Comparator;
import java.util.PriorityQueue;

public class Main {
    public static void main(String[] args) {
        // 創建一個整數類型的優先隊列,默認是小頂堆
        PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();

        // 向優先隊列中添加元素
        priorityQueue.add(5);
        priorityQueue.add(3);
        priorityQueue.add(8);
        priorityQueue.add(1);

        // 刪除并返回具有特定值的元素
        Integer removedElement = priorityQueue.remove(3);
        if (removedElement != null) {
            System.out.println("Removed element: " + removedElement); // 輸出:Removed element: 3
        } else {
            System.out.println("Element not found.");
        }

        // 查看優先隊列中的元素
        System.out.println("Priority queue: " + priorityQueue); // 輸出:Priority queue: [5, 8, 1]
    }
}

如果您需要根據自定義的優先級刪除元素,可以在創建PriorityQueue時提供一個Comparator。例如,以下示例創建了一個根據字符串長度進行排序的優先隊列:

import java.util.Comparator;
import java.util.PriorityQueue;

public class Main {
    public static void main(String[] args) {
        // 創建一個字符串類型的優先隊列,根據字符串長度進行排序
        PriorityQueue<String> priorityQueue = new PriorityQueue<>(Comparator.comparingInt(String::length));

        // 向優先隊列中添加元素
        priorityQueue.add("apple");
        priorityQueue.add("banana");
        priorityQueue.add("cherry");
        priorityQueue.add("date");

        // 刪除并返回具有特定長度的元素
        String removedElement = priorityQueue.remove("banana");
        if (removedElement != null) {
            System.out.println("Removed element: " + removedElement); // 輸出:Removed element: banana
        } else {
            System.out.println("Element not found.");
        }

        // 查看優先隊列中的元素
        System.out.println("Priority queue: " + priorityQueue); // 輸出:Priority queue: [date, apple, cherry]
    }
}

0
方正县| 邵阳市| 龙井市| 酒泉市| 城市| 清徐县| 金溪县| 清涧县| 西青区| 芒康县| 上饶县| 和林格尔县| 九龙县| 柳河县| 广宁县| 富川| 饶阳县| 浦县| 西乌| 江都市| 澄迈县| 顺义区| 永修县| 蓬安县| 灵台县| 常山县| 正阳县| 扬州市| 安丘市| 陆丰市| 温宿县| 巴青县| 农安县| 垦利县| 通州市| 图们市| 松江区| 达日县| 易门县| 邳州市| 石门县|