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”.
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 :
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 :
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 ~
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
To check if a primitive array contains multiple values, convert the array into a List and compare it like example 1.2 above.
what about ?
static boolean contains(Integer[] ints, int k) { return (java.util.Arrays.binarySearch(ints, k)) >= 0; }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.
Hi,
The link of the topic does not match the title.
Regards,
Adarsh
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.