Java – Check if Array contains a certain value?

Java examples to check if an Array (String or Primitive type) contains a certain values, updated with Java 8 stream APIs.

1. String Arrays

1.1 Check if a String Array contains a certain value “A”.

StringArrayExample1.java

package com.mkyong.core;

import java.util.Arrays;
import java.util.List;

public class StringArrayExample1 {

    public static void main(String[] args) {

        String[] alphabet = new String[]{"A", "B", "C"};

        // Convert String Array to List
        List<String> list = Arrays.asList(alphabet);
        
        if(list.contains("A")){
            System.out.println("Hello A");
        }

    }

}

Output


Hello A

In Java 8, you can do this :


	// Convert to stream and test it
	boolean result = Arrays.stream(alphabet).anyMatch("A"::equals);
	if (result) {
		System.out.println("Hello A");
	}

1.2 Example to check if a String Array contains multiple values :

StringArrayExample2.java

package com.mkyong.core;

import java.util.Arrays;
import java.util.List;

public class StringArrayExample2 {

    public static void main(String[] args) {

        String[] alphabet = new String[]{"A", "C"};

        // Convert String Array to List
        List<String> list = Arrays.asList(alphabet);

        // A or B
        if (list.contains("A") || list.contains("B")) {
            System.out.println("Hello A or B");
        }

        // A and B
        if (list.containsAll(Arrays.asList("A", "B"))) {
            System.out.println("Hello A and B");
        }

        // A and C
        if (list.containsAll(Arrays.asList("A", "C"))) {
            System.out.println("Hello A and C");
        }

    }

}

Output


Hello A or B
Hello A and C

2. Primitive Arrays

2.1 For primitive array like int[], you need to loop it and test the condition manually :

PrimitiveArrayExample1.java

package com.mkyong.core;

import java.util.Arrays;
import java.util.List;

public class PrimitiveArrayExample1 {

    public static void main(String[] args) {

        int[] number = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        if(contains(number, 2)){
            System.out.println("Hello 2");
        }

    }

    public static boolean contains(final int[] array, final int v) {

        boolean result = false;

        for(int i : array){
            if(i == v){
                result = true;
                break;
            }
        }

        return result;
    }

}

Output


Hello 2

2.2 With Java 8, coding is much simpler ~

ArrayExample1.java

package com.mkyong.core;

import java.util.stream.IntStream;
import java.util.stream.LongStream;

public class TestDate {

    public static void main(String[] args) {

        int[] number = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        //Java 8
        boolean result = IntStream.of(number).anyMatch(x -> x == 4);

        if (result) {
            System.out.println("Hello 4");
        } else {
            System.out.println("Where is number 4?");
        }

        long[] lNumber = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        boolean result2 = LongStream.of(lNumber).anyMatch(x -> x == 10);

        if (result2) {
            System.out.println("Hello 10");
        } else {
            System.out.println("Where is number 10?");
        }

    }

}

Output


Hello 4
Hello 10
Note
To check if a primitive array contains multiple values, convert the array into a List and compare it like example 1.2 above.

References

  1. IntStream JavaDoc
  2. Arrays.asList JavaDoc

4 comments on “Java – Check if Array contains a certain value?

  1. what about ?

    static boolean contains(Integer[] ints, int k) {
        return (java.util.Arrays.binarySearch(ints, k)) >= 0;
    }
    
    Reply
  2. The contains(array,value) worked like a dream for me to identify duplicate values as my random integers were being input into an array such that I was able to repeat the iteration without adding to the array limit.
    Much appreciated.

    Reply
  3. Hi,

    The link of the topic does not match the title.

    Regards,
    Adarsh

    Reply
  4. for 1.1 you could do
    Arrays.stream(alphabet).filter(“A”::equals).findAny().ifPresent(s->System.out.println(“Hello A”));

    which removes the need for the if below.

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *