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

溫馨提示×

priorityqueue java怎樣保證元素唯一性

小樊
81
2024-11-16 03:02:22
欄目: 編程語言

在Java中,PriorityQueue 本身并不保證元素的唯一性。如果你想要確保 PriorityQueue 中的元素唯一,可以在將元素添加到隊列之前進行檢查。這里有一個簡單的方法來實現這個功能:

  1. 創建一個自定義的比較器(Comparator),用于比較兩個對象是否相等。
  2. 在將元素添加到 PriorityQueue 之前,使用這個比較器檢查元素是否已經存在于隊列中。
  3. 如果元素不存在于隊列中,則將其添加到隊列中。

下面是一個示例代碼:

import java.util.Comparator;
import java.util.HashSet;
import java.util.PriorityQueue;
import java.util.Set;

public class UniquePriorityQueue {
    public static void main(String[] args) {
        PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(new UniqueComparator());
        Set<Integer> set = new HashSet<>();

        // 添加元素到優先隊列和集合中
        addElement(priorityQueue, set, 5);
        addElement(priorityQueue, set, 3);
        addElement(priorityQueue, set, 5); // 這個元素將被忽略,因為它已經存在于隊列中
        addElement(priorityQueue, set, 10);

        // 打印優先隊列中的元素
        while (!priorityQueue.isEmpty()) {
            System.out.println(priorityQueue.poll());
        }
    }

    private static void addElement(PriorityQueue<Integer> priorityQueue, Set<Integer> set, int value) {
        if (!set.contains(value)) {
            set.add(value);
            priorityQueue.offer(value);
        }
    }

    static class UniqueComparator implements Comparator<Integer> {
        @Override
        public int compare(Integer o1, Integer o2) {
            return o1 - o2;
        }
    }
}

在這個示例中,我們創建了一個名為 UniqueComparator 的自定義比較器,用于比較兩個整數是否相等。我們還創建了一個 Set,用于存儲已經添加到 PriorityQueue 中的元素。當我們嘗試將一個新元素添加到隊列時,我們會先檢查它是否已經存在于集合中。如果不存在,我們將其添加到集合和隊列中。這樣,我們可以確保 PriorityQueue 中的元素是唯一的。

0
聂荣县| 龙岩市| 房产| 永嘉县| 安仁县| 蕉岭县| 九龙县| 壤塘县| 武强县| 屯门区| 泗水县| 塔城市| 家居| 林周县| 宝鸡市| 武宁县| 永平县| 深水埗区| 大余县| 逊克县| 金昌市| 南召县| 鹤山市| 房产| 宜州市| 沈丘县| 怀宁县| 搜索| 若尔盖县| 延吉市| 沈丘县| 潜山县| 唐河县| 秀山| 西昌市| 安平县| 姜堰市| 奉化市| 翁牛特旗| 尚义县| 祁连县|