Groovy Operators

Control Statements

Groovy File Handling

Groovy Error & Exceptions

Groovy Multithreading

Groovy Synchronization

Groovy - List unique(boolean mutate) method



Description

Groovy List unique(boolean mutate) method modifies the list by removing any duplicates. If mutate is true, then original list is modified as well. Duplicates are removed using Groovy's default number-aware comparator.

Syntax

public List unique(boolean mutate)

Parameters

mutate − if true, then original list is modified as well.

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

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

println("mutate: false")
// getting list of unique elements
uniqueList = lst.unique(false)
println(uniqueList)

// original list is not updated
println(lst)

println("mutate: true")
// getting list of unique elements, modify the original as well
uniqueList = lst.unique(true)
println(uniqueList)

// original list is updated as well
println(lst)

Output

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

mutate: false
[11, 12, 13, 10, 15]
[11, 12, 13, 10, 15, 11, 10, 12, 15]
mutate: true
[11, 12, 13, 10, 15]
[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

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

println("mutate: false")
// getting list of unique elements
uniqueList = lst.unique(false)
println(uniqueList)

// original list is not updated
println(lst)

println("mutate: true")
// getting list of unique elements, modify the original as well
uniqueList = lst.unique(true)
println(uniqueList)

// original list is updated as well
println(lst)

Output

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

mutate: false
[Apple, Mango, Orange, Papaya]
[Apple, Mango, Orange, Papaya, Apple, Apple]
mutate: true
[Apple, Mango, Orange, Papaya]
[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")]

println("mutate: false")
// getting list of unique elements
uniqueList = lst.unique(false)
println(uniqueList)

// original list is not updated
println(lst)

println("mutate: true")
// getting list of unique elements, modify the original as well
uniqueList = lst.unique(true)
println(uniqueList)

// original list is updated as well
println(lst)

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 −

mutate: false
[[ 1, Julie ], [ 2, Robert ]]
[[ 1, Julie ], [ 2, Robert ], [ 1, Julie ]]
mutate: true
[[ 1, Julie ], [ 2, Robert ]]
[[ 1, Julie ], [ 2, Robert ]]
groovy_lists.htm
Advertisements