Diferencia entre PriorityQueue y TreeSet

Tanto PriorityQueue como TreeSet son clases definidas dentro de Collection Framework. En este artículo, aprenderemos las diferencias entre PriorityQueue y TreeSet. PriorityQueue es una implementación de la interfaz Queue y TreeSet es la implementación de la interfaz Set . Existen algunas diferencias entre ellos. Así que hemos tratado de enumerar las diferencias entre PriorityQueue y TreeSet.

1. PriorityQueue : Cola

Demostración de PriorityQueue:

Java

// Java program to demonstrate the
// working of PriorityQueue
import java.util.*;
  
class PriorityQueueDemo {
  
    // Main Method
    public static void main(String args[])
    {
        // Creating empty priority queue
        PriorityQueue<String> pQueue
            = new PriorityQueue<>();
  
        // Adding elements to the pQueue using add()
        pQueue.add("Geeks");
        pQueue.add("For");
        pQueue.add("Geeks");
  
        // Printing the top element of PriorityQueue
        System.out.println(pQueue.peek());
  
        // Printing the top element and removing it
        // from the PriorityQueue container
        System.out.println(pQueue.poll());
  
        // Printing the top element again
        System.out.println(pQueue.peek());
    }
}
Producción

For
For
Geeks

2. TreeSet : Interfaz SortedSet Comparador de árboles Interfaz Set Interfaz NavigableSet Clase AbstractSet

Java

// Java code to demonstrate
// the working of TreeSet
  
import java.util.*;
class TreeSetDemo {
  
    public static void main(String[] args)
    {
        // Creating an empty TreeSet
        TreeSet<String> ts = new TreeSet<String>();
  
        // Elements are added using add() method
        ts.add("Geek");
        ts.add("For");
        ts.add("Geeks");
  
        System.out.println("Tree Set is " + ts);
  
        String check = "Geeks";
  
        // Check if the above string exists in
        // the treeset or not
        System.out.println("Contains " + check + " "
                           + ts.contains(check));
  
        // Print the first element in
        // the TreeSet
        System.out.println("First Value " + ts.first());
  
        // Print the last element in
        // the TreeSet
        System.out.println("Last Value " + ts.last());
  
        String val = "Geek";
  
        // Find the values just greater
        // and smaller than the above string
        System.out.println("Higher " + ts.higher(val));
        System.out.println("Lower " + ts.lower(val));
    }
}

                   PriorityQueue

                                ÁrbolConjunto

PriorityQueue utiliza la estructura de datos subyacente Queue TreeSet utiliza la estructura de datos subyacente Set.
PriorityQueue permite los elementos duplicados TreeSet no permite los elementos duplicados
En PriorityQueue, aparte de la raíz, el resto de los elementos pueden o no seguir cualquier orden. En TreeSet todos los elementos permanecen ordenados.
Usando PriorityQueue, podemos recuperar el elemento más grande o más pequeño en tiempo O(1). TreeSet no proporciona una forma de recuperar el elemento más grande o más pequeño en el tiempo O (1), pero como están ordenados, obtiene el primer o el último elemento en el tiempo O (1).
PriorityQueue viene en JDK 1.5. TreeSet viene en JDK 1.4.

Publicación traducida automáticamente

Artículo escrito por prashant_srivastava y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *