Add exists() to test if any one element in the collection matches the predicate

from Peter KoBek


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130963 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Stephen Colebourne 2003-01-25 11:40:26 +00:00
parent 075ed28c88
commit a164d04789
2 changed files with 41 additions and 6 deletions

View File

@ -1,5 +1,5 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/CollectionUtils.java,v 1.27 2003/01/25 11:29:37 scolebourne Exp $
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/CollectionUtils.java,v 1.28 2003/01/25 11:40:26 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
@ -77,7 +77,7 @@ import org.apache.commons.collections.iterators.EnumerationIterator;
* A set of {@link Collection} related utility methods.
*
* @since Commons Collections 1.0
* @version $Revision: 1.27 $ $Date: 2003/01/25 11:29:37 $
* @version $Revision: 1.28 $ $Date: 2003/01/25 11:40:26 $
*
* @author Rodney Waldhoff
* @author Paul Jack
@ -449,6 +449,26 @@ public class CollectionUtils {
return count;
}
/**
* Answers true if a predicate is true for at least one element of a collection.
* <p>
* A <code>null</code> collection or predicate returns false.
*
* @param collection the collection to get the input from, may be null
* @param predicate the predicate to use, may be null
* @return true if at least one element of the collection matches the predicate
*/
public static boolean exists(Collection collection, Predicate predicate) {
if (collection != null && predicate != null) {
for (Iterator it = collection.iterator(); it.hasNext();) {
if (predicate.evaluate(it.next())) {
return true;
}
}
}
return false;
}
/**
* Selects all elements from input collection which match the given predicate
* into an output collection.

View File

@ -1,7 +1,7 @@
/*
* $Id: TestCollectionUtils.java,v 1.11 2003/01/25 11:31:12 scolebourne Exp $
* $Revision: 1.11 $
* $Date: 2003/01/25 11:31:12 $
* $Id: TestCollectionUtils.java,v 1.12 2003/01/25 11:40:26 scolebourne Exp $
* $Revision: 1.12 $
* $Date: 2003/01/25 11:40:26 $
*
* ====================================================================
*
@ -66,7 +66,7 @@ import java.util.*;
/**
* @author Rodney Waldhoff
* @version $Revision: 1.11 $ $Date: 2003/01/25 11:31:12 $
* @version $Revision: 1.12 $ $Date: 2003/01/25 11:40:26 $
*/
public class TestCollectionUtils extends TestCase {
public TestCollectionUtils(String testName) {
@ -459,6 +459,21 @@ public class TestCollectionUtils extends TestCase {
assertEquals(0, CollectionUtils.countMatches(null, null));
}
public void testExists() {
List list = new ArrayList();
assertEquals(false, CollectionUtils.exists(null, null));
assertEquals(false, CollectionUtils.exists(list, null));
assertEquals(false, CollectionUtils.exists(null, EQUALS_TWO));
assertEquals(false, CollectionUtils.exists(list, EQUALS_TWO));
list.add("One");
list.add("Three");
list.add("Four");
assertEquals(false, CollectionUtils.exists(list, EQUALS_TWO));
list.add("Two");
assertEquals(true, CollectionUtils.exists(list, EQUALS_TWO));
}
public void testSelect() {
List list = new ArrayList();
list.add("One");