Groovy Operators

Control Statements

Groovy File Handling

Groovy Error & Exceptions

Groovy Multithreading

Groovy Synchronization

Groovy - List intersect(Iterable iterable, Comparator comparator) method



Description

Groovy List intersect() method Returns the list of items which are common in current list and passed iterable. Comparator passed is used to compare and determine if an element exists in both collections.

Syntax

public List intersect(Iterable right, Comparator comparator)

Parameters

  • right − an iterable

  • comparator − a comparator

Return Value

A List as result of intersection between current List and Iterable passed.

Example - Getting common values from a Lists 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, 14, 15]
def otherLst = [16, 12, 13, 14, 17]

println(lst.intersect(otherLst, new NumberAwareComparator()))

Output

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

[12, 13, 14]

Example - Getting common values from a Lists 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", "Peach"]
def otherLst = ["Papaya", "Orange","Grapes"]

println(lst.intersect(otherLst, new NumberAwareComparator()))

Output

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

[Papaya, Orange]

Example - Getting common values from a Lists of Objects

Following is an example of the usage of this method −

main.groovy

import java.util.Comparator

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

def otherLst = [new Student(1, "Julie"),new Student(2, "Robert"),new Student(4, "Markel")];

println(lst.intersect(otherLst, new RollNoComparator()))

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 + " ]";
   }
   
   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, Julie ], [ 2, Robert ]]
groovy_lists.htm
Advertisements