Support Online
Skip to main content

How to Check Value in Java Array? (4 Basic Methods)

What Will You Learn in This Guide?
This guide explains technically and practically 4 effective methods of checking the existence of a particular element in a Java array.
You'll learn the correct comparison operators (== and .equals()) on primitive (int[]) and object (String[]) arrays, the power of Java 8 Streams, and the fastest O(log n) search method for sorted arrays.
Purpose: To ensure the balance of Performance + Code Readability.

🔍 Login

Searching for a specific value in an array in Java is the basis of everyday programming routines.
This process varies depending on different scenarios: while the for loop is sufficient for small arrays, binarySearch() creates a serious performance difference in large arrays.

🎯 Goals

  • Choosing the right search method for different types of strings
  • Understanding the difference between O(n) and O(log n)
  • Performing null-safe searches
  • Establishing the performance/functionality balance

1️⃣ Universal Method: For Loop (Universal Approach)

For-each loop is the most basic solution compatible with all array types.
It does not require additional libraries and is ideal for small and medium-sized arrays.

Array TypeComparison OperatorDescription
Object Array (String[]).equals()Compares the value of objects.
Primitive Arrays (int[])==Makes direct value comparison.
public class NesneDiziArama {
public static void main(String[] args) {
String[] aletler = {"Çekiç", "Tornavida", "Anahtar"};
String aranacakAlet = "Anahtar";
boolean bulundu = false;

for (String alet : aletler) {
if (alet.equals(aranacakAlet)) {
bulundu = true;
break;
}
}
System.out.println("'" + aranacakAlet + "' bulundu mu: " + bulundu);
}
}

🗒️ This example safely checks object equality using .equals().

Using Objects.equals() eliminates the risk of NullPointerException.


import java.util.Objects;
if (Objects.equals(eleman, deger)) {
return true;
}

2️⃣ Modern Method: Java 8 Streams anyMatch()

Streams API provides functional-style data processing. The anyMatch() method ends the search immediately when a match is found (short-circuit evaluation).

Object Array Example


import java.util.Arrays;

public class StreamNesneArama {
public static void main(String[] args) {
String[] diller = {"Java", "Python", "Go"};
String aranacakDil = "Java";
boolean bulundu = Arrays.stream(diller)
.anyMatch(d -> d.equals(aranacakDil));
System.out.println("Bulundu mu: " + bulundu);
}
}

Primitive String Example (IntStream)


import java.util.Arrays;

public class StreamIlkelArama {
public static void main(String[] args) {
int[] notlar = {88, 92, 77, 100};
int aranacak = 77;
boolean bulundu = Arrays.stream(notlar)
.anyMatch(n -> n == aranacak);
System.out.println("Bulundu mu: " + bulundu);
}
}

🧠 Streams offers a modern and readable method; The performance difference is negligible on small arrays.


3️⃣ Practical Method: Arrays.asList().contains()

It is a practical one-line solution for object arrays. But it doesn't work with primitive arrays (int[]).


import java.util.Arrays;

public class AsListNesneArama {
public static void main(String[] args) {
String[] meyveler = {"Elma", "Muz", "Portakal"};
boolean varMi = Arrays.asList(meyveler).contains("Muz");
System.out.println("Dizide 'Muz' var mı: " + varMi);
}
}

⚠️ For primitive arrays, Arrays.asList() returns an List<int[]> — containing the array itself rather than each element.


4️⃣ Fastest Method: Arrays.binarySearch() (Ordered Arrays)

binarySearch() provides the fastest search on large arrays with O(log n) complexity. But first the array must be sorted.


import java.util.Arrays;

public class IkiliAramaOrnegi {
public static void main(String[] args) {
String[] sesliler = {"U", "A", "E", "I", "O"};
Arrays.sort(sesliler);
int indeks = Arrays.binarySearch(sesliler, "I");
if (indeks >= 0)
System.out.println("'I' bulundu! İndeksi: " + indeks);
}
}

🧩 If the array is not sequential, the result may be incorrect; Arrays.sort() must be called first.


⏱️ Performance Comparison (Big O Notation)

MethodSuitable TypesBest ScenarioTime ComplexityRestriction
For LoopPrimitive & ObjectSmall/medium sized arraysO(n)Manual comparison required
Stream anyMatch()Primitive & ObjectModern, readable codeO(n)There may be a slight performance difference
Arrays.asList()Object OnlyOne-line practical solutionO(n)Invalid in primitive arrays
binarySearch()Primitive & ObjectLarge ordered arraysO(log n)Array must be sequential

💡 Additional Method:

Checking for Multiple Values with containsAll() To test whether an array contains more than one value:


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

public class ContainsAllExample {
public static void main(String[] args) {
String[] izinler = {"READ", "WRITE", "EXECUTE"};
String[] gerekli = {"READ", "WRITE"};
List<String> userList = Arrays.asList(izinler);
boolean hepsiVar = userList.containsAll(Arrays.asList(gerekli));
System.out.println("Tüm izinler mevcut mu? " + hepsiVar);
}
}

✅ It is the cleanest solution to check multiple values.


❓ Frequently Asked Questions (FAQ)

  1. Why doesn't Arrays.asList() work on int[] array?

Because Arrays.asList() perceives the primitive array as a single object (List<int[]>).

  1. Why does binarySearch() request a sorted array?

Because the algorithm searches by dividing in the middle — if it is not sequential, it returns an incorrect result.

  1. How do I know if the array contains more than one value?

You can check using containsAll() or HashSet.

  1. How to search by ID in object array?

boolean urunVar = Arrays.stream(urunDizisi)
.anyMatch(p -> p.getId().equals("TR12345"));
  1. How to ensure null safety?

The Objects.equals() method prevents null reference errors.


🧠 Conclusion

There is no single correct way to search Java strings — the method varies depending on the situation.

Small arrays → for loop

Modern code → Streams anyMatch()

Large sequential arrays → binarySearch()

Multiple value check → containsAll()

Optimize your code for your purpose; Both performance and readability will increase.

🚀 Create a virtual server on the GenixNode platform now and test your Java arrays with high performance!