Java ArrayList indexOf() Example to find the Object exists in List or Not

1. Introduction


In this article, We will learn the ArrayList class indexOf() method. Let us take a look into how to find the value or object that is present in the list or not. And also what are the valid arguments to pass and what are the exceptions will be thrown at run time exception.

String class also has indexOf() method

Java ArrayList indexOf() Example to find the Object exists in List or Not





2. int indexOf(Object o)


indexOf() method is used to get the index of the given object. If the given object exists in the list it returns the index of the particular value. If the value is not present then it returns -1 always negative value. If the given value is present multiple times in the list then it takes the first occurrence of the value and returns its index. 

indexOf(Object o) method takes Object type argument. So that means any value or object can be passed to this method. And also a null value can be passed. All these are legal to do but it throws runtime exceptions.

3. Example


Example program to check how indexOf() method returns index values. In the below program, first added String values to ArrayList and invoked the indexOf() method on the list.

package com.java.w3schools.blog.arraylist;

import java.util.ArrayList;
import java.util.List;

/**
*
* Example to ArrayList indexOf() method.
*
* @author javaprogramto.com
*
*/
public class ArrayListIndexOfExample {

public static void main(String[] args) {

List<String> list = new ArrayList<String>();

list.add("1");
list.add("2");
list.add("3");
list.add("3");
list.add("4");
list.add("1");
list.add("2");
list.add("5");
list.add("7");
list.add("8");

int index4 = list.indexOf("4");

System.out.println("Index 4 : " + index4);

int index3 = list.indexOf("3");

System.out.println("Repeated value 3 index " + index3);

int noMatch = list.indexOf("100");

System.out.println("100 exits check : " + noMatch);

int index8 = list.indexOf("8");

System.out.println("index of value 8 is : " + index8);

}

}

Output:

Index 4 : 4
Repeated value 3 index 2
100 exits check : -1
index of value 8 is : 9

4. Runtime Exceptions - ClassCastException, NullPointerException


If we pass the invalid values or other class objects to the indexOf() method will result in runtime exceptions saying ClassCastException or NullPointerException if null is passed.

From API:ClassCastException - if the type of the specified element is incompatible with this list
NullPointerException - if the specified element is null and this list does not permit null elements 

But, I have tried to simulate the examples for these exceptions but did not get any exceptions when passing null or different objects.

/**
*
* Example to ArrayList indexOf() exception examples.
*
* @author javaprogramto.com
*
*/
public class ArrayListIndexOfExceptionExamples {

public static void main(String[] args) {

List<Employee> list = new ArrayList<Employee>();

list.add(new Employee());
list.add(new Employee());

int indexCast = list.indexOf(new Address());

int index = list.indexOf(null);

System.out.println("Address indexOf : " + indexCast);
System.out.println("null indexOf : " + index);
}

}

class Employee {

}

class Address {

}

Output:

This program compiles and runs without any exceptions.

Address indexOf : -1
null indexOf : -1

IndexOf() on List of null values:

List<Integer> numbersList = new ArrayList<Integer>();

for (int i = 1; i <= 10; i++) {
numbersList.add(null);

numbersList.add(null);

numbersList.add(null);

numbersList.add(null);

numbersList.add(null);
}

System.out.println("null values list size : " + numbersList.size());

int nullIndexValue = numbersList.indexOf(null);
System.out.println("null index value : " + nullIndexValue);

Output:

null values list size : 50
null index value : 0

Added 50 null values but indexOf() method returns always the first match index.

5. Conclusion


In this article, We've seen the ArrayList indexOf() method with examples. When to List indexOf() method and what are the exceptions thrown at runtime.


Read more on these topics to get a better understanding.

Object class

GitHub Code 1

GitHub Code 2

0 Comments