Groovy Operators

Control Statements

Groovy File Handling

Groovy Error & Exceptions

Groovy Multithreading

Groovy Synchronization

Groovy - Map toSorted() method



Description

Groovy Map toSorted() method sorts the elements of given map using NumberAwareComparator on map entry values to determine the resulting order or by natural ordering of Map.Entry values. Original map is unaffected.

Syntax

public Map toSorted()

Parameters

NA

Return Value

Sorted map.

Example - Getting Sorted Map of String and String

Following is an example of the usage of this method −

main.groovy

// define a map
def map = ["A" : "Apple","P":"Peach","C": "Carrot","B" : "Banana"] 

// get the sorted map
def result = map.toSorted()

// print map
print(result)

Output

When we run the above program, we will get the following result −

[A:Apple, B:Banana, C:Carrot, P:Peach]

Example - Getting Sorted Map of Integer and Integer

Following is an example of the usage of this method −

main.groovy

// define a map
def map = [3 : 13, 4: 14, 1: 11, 2 : 12, 5: 15] 

// get the sorted map
def result = map.toSorted()

// print map
print(result)

Output

When we run the above program, we will get the following result −

[1:11, 2:12, 3:13, 4:14, 5:15]

Example - Getting Sorted Map of Integer and Integer

Following is an example of the usage of this method −

main.groovy

// define a map
def map = [2 : new Student(2, "Robert"), 1 : new Student(1, "Julie"), 3: new Student(3,"Adam")] 

// get the sorted map
def result = map.toSorted()

// print map
print(result)

class Student implements Comparable {
   int rollNo;
   String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public boolean equals(Object obj) {
      Student s = (Student)obj;
      return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name);
   }
   
   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
   
   public int compareTo(Object obj){
      Student s = (Student)obj;
      return this.rollNo - s.rollNo   
   }
}

Output

When we run the above program, we will get the following result −

[1:[ 1, Julie ], 2:[ 2, Robert ], 3:[ 3, Adam ]]
groovy_maps.htm
Advertisements