You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2021/12/08 18:29:20 UTC

[commons-lang] branch master updated: Add ArrayUtils.containsAny(Object[], Object...).

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new 5def1c8  Add ArrayUtils.containsAny(Object[], Object...).
5def1c8 is described below

commit 5def1c8d634f12a265662f38188cd611aa1e574b
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Dec 8 13:29:16 2021 -0500

    Add ArrayUtils.containsAny(Object[], Object...).
    
    Primitive versions are TODOs.
---
 src/changes/changes.xml                                  |  1 +
 src/main/java/org/apache/commons/lang3/ArrayUtils.java   | 16 ++++++++++++++++
 .../java/org/apache/commons/lang3/ArrayUtilsTest.java    | 15 ++++++++++++++-
 3 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 205c788..3c5808b 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -113,6 +113,7 @@ The <action> type attribute can be add,update,fix,remove.
     <action                   type="add" dev="ggregory" due-to="Gary Gregory">Add MutableTriple.ofNonNull(L, M, R).</action>
     <action                   type="add" dev="ggregory" due-to="Gary Gregory">Add Pair.ofNonNull(L, R).</action>
     <action                   type="add" dev="ggregory" due-to="Gary Gregory">Add Triple.ofNonNull(L, M, R).</action>
+    <action                   type="add" dev="ggregory" due-to="Gary Gregory">Add ArrayUtils.containsAny(Object[], Object...).</action>
     <!-- UPDATE -->
     <action                   type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump spotbugs-maven-plugin from 4.2.0 to 4.5.0.0 #735, #808, #822, #834.</action>
     <action                   type="update" dev="ggregory" due-to="Dependabot, XenoAmess">Bump actions/cache from v2.1.4 to v2.1.7 #742, #752, #764, #833.</action>
diff --git a/src/main/java/org/apache/commons/lang3/ArrayUtils.java b/src/main/java/org/apache/commons/lang3/ArrayUtils.java
index c83a2ea..033a236 100644
--- a/src/main/java/org/apache/commons/lang3/ArrayUtils.java
+++ b/src/main/java/org/apache/commons/lang3/ArrayUtils.java
@@ -36,6 +36,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import org.apache.commons.lang3.math.NumberUtils;
 import org.apache.commons.lang3.mutable.MutableInt;
+import org.apache.commons.lang3.stream.Streams;
 
 /**
  * Operations on arrays, primitive arrays (like {@code int[]}) and
@@ -1653,6 +1654,21 @@ public class ArrayUtils {
     }
 
     /**
+     * Checks if any of the objects are in the given array.
+     * <p>
+     * The method returns {@code false} if a {@code null} array is passed in.
+     * </p>
+     *
+     * @param array  the array to search through
+     * @param objectsToFind  any of the objects to find
+     * @return {@code true} if the array contains any of the objects
+     * @since 3.13.0
+     */
+    public static boolean containsAny(final Object[] array, final Object... objectsToFind) {
+        return Streams.of(objectsToFind).anyMatch(e -> contains(array, e));
+    }
+
+    /**
      * Checks if the value is in the given array.
      * <p>
      * The method returns {@code false} if a {@code null} array is passed in.
diff --git a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
index 3e76bf2..b89d850 100644
--- a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
@@ -208,8 +208,21 @@ public class ArrayUtilsTest {
         assertTrue(ArrayUtils.contains(array, "1"));
         assertTrue(ArrayUtils.contains(array, "2"));
         assertTrue(ArrayUtils.contains(array, "3"));
-        assertTrue(ArrayUtils.contains(array, null));
         assertFalse(ArrayUtils.contains(array, "notInArray"));
+        assertTrue(ArrayUtils.contains(array, null));
+    }
+
+    @Test
+    public void testContainsAny() {
+        final Object[] array = {"0", "1", "2", "3", null, "0"};
+        assertFalse(ArrayUtils.containsAny(null, null));
+        assertFalse(ArrayUtils.containsAny(null, "1"));
+        assertTrue(ArrayUtils.containsAny(array, "0"));
+        assertTrue(ArrayUtils.containsAny(array, "1"));
+        assertTrue(ArrayUtils.containsAny(array, "2"));
+        assertTrue(ArrayUtils.containsAny(array, "3"));
+        assertFalse(ArrayUtils.containsAny(array, "notInArray"));
+        assertTrue(ArrayUtils.containsAny(array, new String[] {null}));
     }
 
     @Test