Skip to main content

Java Priority Queue sort using lambda expression

Priority Queue   In Java Priority Queue is a queue which keeps its elements sorted as per their natural order( example in ascending orders for Integer, alphabetical a-z for alphabets) or using a custom Comparator at the time of creation you can custom sort it.

It has most method  similar to a queue  add, clear, poll, peek
As priority queue have to compare elements to keep in order so elements must be comparable otherwise, it will throw ClassCastException . 
As null can not be compared so you are not allowed to insert null too

A program to sort priority queue using Lambda function in Java


         class PriorityQueueLambdaJava{
    public List<Integer> KFrequent(int[] nums, int k) {
        Map<Integer, Integer> map = new HashMap<>();
        for (int j: nums) {
            map.put(j, map.getOrDefault(j, 0) + 1);
        }
        PriorityQueue<Map.Entry<Integer, Integer>> pq = new PriorityQueue<>((p1, p2) -> p1.getValue() - p2.getValue());
        map.entrySet().forEach(e -> {
            pq.offer(e);
            if (pq.size() > k) {
                pq.poll();
            }
        });
        return pq.stream().map(p -> p.getKey()).collect(Collectors.toList());
    }
}



Post is inspired form Oracle documents for java 

Comments

Popular posts from this blog

OBJECT class in Java

OBJECT class in Java : Object is at the top of class hierarchy in java. Every class in the Java system is a descendent (direct or indirect) of the Object class. The Object class defines the basic state and behavior that all objects must have, such as the ability to compare oneself to another object, to convert to a string, to wait on a condition variable, to notify other objects that a condition variable has changed, and to return the object's class. Mainly below methods are provided by Object class : public String toString() returns the string representation of this object. protected Object clone() throws CloneNotSupportedException creates and returns the exact copy (clone) of this object. public boolean equals(Object obj) compares the given object to this object. public int hashCode() returns the hashcode number for this object. public final Class getClass() returns the Class class object of this object. The Class class can further be used to get the metadata of ...

Important Keywords: Static, Continue,Break:

Important Keywords: Static, Continue,Break:  Static: The static keyword in java is used for memory management mainly.  The static keyword members belongs to the class rather than instance of the class. Following members can be declared as static: variable (also known as class variable) method (also known as class method) block nested class  static variables : We can use static keyword with a class level variable. A static variable is a class variable and doesn’t belong to Object/instance of the class. Since static variables are shared across all the instances of Object, they are not thread safe . Usually static variables are used with final keyword for common resources or constants that can be used by all the objects. If the static variable is not private, we can access it as: ClassName.variableName //static variable example private static int a ge; public static String name; static methods: A static method belongs t...