中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

priorityqueue java怎樣實現優先級排序

小樊
81
2024-11-16 02:48:21
欄目: 編程語言

在Java中,PriorityQueue類是一個基于優先級的隊列。默認情況下,隊列中的元素按照自然順序進行排序,但你可以通過提供一個自定義的比較器(Comparator)來實現不同的優先級排序。

以下是一個使用PriorityQueue實現優先級排序的示例:

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

class Task {
    String name;
    int priority;

    public Task(String name, int priority) {
        this.name = name;
        this.priority = priority;
    }

    @Override
    public String toString() {
        return "Task{" +
                "name='" + name + '\'' +
                ", priority=" + priority +
                '}';
    }
}

public class PriorityQueueExample {
    public static void main(String[] args) {
        // 創建一個優先級隊列,根據任務的優先級進行排序
        PriorityQueue<Task> taskQueue = new PriorityQueue<>(Comparator.comparingInt(Task::getPriority).reversed());

        // 向隊列中添加任務
        taskQueue.add(new Task("Task 1", 3));
        taskQueue.add(new Task("Task 2", 1));
        taskQueue.add(new Task("Task 3", 2));

        // 輸出隊列中的任務
        while (!taskQueue.isEmpty()) {
            System.out.println(taskQueue.poll());
        }
    }
}

在這個示例中,我們定義了一個名為Task的類,它包含一個名稱(name)和一個優先級(priority)。我們創建了一個名為taskQueue的PriorityQueue,并使用Comparator.comparingInt()方法根據任務的優先級進行排序。通過調用reversed()方法,我們可以讓隊列按照優先級的降序進行排序。

然后,我們向隊列中添加了三個任務,并在隊列不為空時,使用poll()方法依次取出并輸出隊列中的任務。

0
井陉县| 鲁甸县| 咸阳市| 龙井市| 垣曲县| 尤溪县| 安远县| 鱼台县| 博白县| 林西县| 石泉县| 十堰市| 阿合奇县| 江安县| 德惠市| 伊宁市| 舞阳县| 任丘市| 巴东县| 陕西省| 桐庐县| 江永县| 凤凰县| 西充县| 镇巴县| 广宗县| 阳曲县| 静安区| 长汀县| 宜阳县| 五河县| 龙南县| 云霄县| 桦甸市| 江城| 云阳县| 定远县| 大港区| 晋宁县| 溆浦县| 阿图什市|