‘liusuyi’
2023-06-29 c422623743896020d819972e20895aea1896f823
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.ruoyi.alarm.globalAlarm.service.impl;
import com.ruoyi.alarm.globalAlarm.domain.GuidePriorityQueue;
import java.util.Comparator;
import java.util.PriorityQueue;
/**
 * @Description:
 * @ClassName: PriorityQueueExample
 * @Author: 刘苏义
 * @Date: 2023年06月29日10:41
 * @Version: 1.0
 **/
 
public class PriorityQueueExample {
    public static void main(String[] args) {
 
        Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator();
        // 创建相机1的优先级队列,并传入自定义的比较器
        PriorityQueue<GuideTask> queue1 = new PriorityQueue<>(comparator);
        // 添加对象到队列中
        GuideTask task1 = new GuideTask("task1", "radar", 999, "2023-06-29 11:10:00", 1);
        GuideTask task2 = new GuideTask("task2", "radar", 999, "2023-06-29 11:11:00", 2);
        GuideTask task3 = new GuideTask("task3", "radar", 999, "2023-06-29 11:12:00", 1);
        GuideTask task4 = new GuideTask("task4", "radar", 888, "2023-06-29 11:13:00", 3);
        queue1.add(task1);
        queue1.add(task2);
        queue1.add(task3);
        queue1.add(task4);
 
 
        GuidePriorityQueue.cameraQueueMap.put("相机1", queue1);
 
        for (String camera :  GuidePriorityQueue.cameraQueueMap.keySet()) {
            PriorityQueue<GuideTask> queue =  GuidePriorityQueue.cameraQueueMap.get(camera);
 
            // 依次取出队列中的对象并打印
            while (!queue.isEmpty()) {
                GuideTask obj = queue.poll();
                System.out.println(obj.getAlarmId() + " - Priority: " + obj.getPriority() + "- Num:" + obj.getNum() + "- time-" + obj.getAlarmTime());
            }
        }
    }
}