Groovy Operators

Control Statements

Groovy File Handling

Groovy Error & Exceptions

Groovy Multithreading

Groovy Synchronization

Groovy - List dropWhile(Closure condition) method



Description

Groovy List dropWhile(Closure condition) method drops the elements from the list which satisfy the provided condition and returns the remaining items.

Syntax

public List dropWhile(Closure condition)

Parameters

condition − a closure whose evaluation decides the item(s) to be dropped

Return Value

A list of items minus the items from the front of the list which satisfy the condition.

Example - Dropping elements from a List of Integers

Following is an example of the usage of this method −

main.groovy

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

// get remaining items which are less than 13
remainingItems = lst.dropWhile{ it < 13}
println(remainingItems)

// original list is intact
println(lst)

Output

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

[13, 14, 15]
[11, 12, 13, 14, 15]

Example - Dropping strings from a List of Strings

Following is an example of the usage of this method −

main.groovy

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

// get remaining items 
remainingItems = lst.dropWhile{ it.size() == 5}
println(remainingItems)

// original list is intact
println(lst)

Output

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

[Orange, Papaya]
[Apple, Mango, Orange, Papaya]

Example - Dropping objects 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(3, "Adam")];

// get remaining items after dropping a student
remainingItems = lst.dropWhile{ it.getRollNo() == 1}
println(remainingItems)

// original list is intact
println(lst)

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 −

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