Groovy Operators

Control Statements

Groovy File Handling

Groovy Error & Exceptions

Groovy Multithreading

Groovy Synchronization

Groovy - List toUnique(Comparator comparator) method



Description

Groovy List toUnique(Comparator comparator) method returns the list without any duplicate while duplicates are removed as per the ordering specified by the comparator passed.

Syntax

public List toUnique(Comparator comparator)

Parameters

comparator − A comparator used to determine unique items.

Return Value

A list of unique elements of the list.

Example - Getting Unique elements from a List of Integers

Following is an example of the usage of this method −

main.groovy

import org.codehaus.groovy.runtime.NumberAwareComparator

def lst = [11, 12, 13, 10, 15, 11, 10, 12, 15]

// getting list of unique elements
uniqueList = lst.toUnique(new NumberAwareComparator())
println(uniqueList)

Output

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

[11, 12, 13, 10, 15]

Example - Getting Unique elements from a List of Strings

Following is an example of the usage of this method −

main.groovy

import org.codehaus.groovy.runtime.NumberAwareComparator

def lst = ["Apple","Mango","Orange","Papaya","Apple", "Apple"]

// getting list of unique elements
uniqueList = lst.toUnique(new NumberAwareComparator())
println(uniqueList)

Output

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

[Apple, Mango, Orange, Papaya]

Example - Getting Unique elements from a List of Objects

Following is an example of the usage of this method −

main.groovy

def lst = [new Student(1, "Julie"),new Student(2, "Robert"),new Student(1, "Julie")]

// getting list of unique elements
uniqueList = lst.toUnique(new RollNoComparator())
println(uniqueList)

class RollNoComparator implements Comparator {
    public int compare(Object obj1, Object obj2){
        return ((Student)obj1).getRollNo() - ((Student)obj2).getRollNo()
    }
}

class Student {
   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 + " ]";
   }
}

Output

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

[[ 1, Julie ], [ 2, Robert ]]
groovy_lists.htm
Advertisements