How can I find elements in a Java List?

JavaObject Oriented ProgrammingProgramming

Java List provides a method indexOf() which can be used to get the location of an element in the list.

int indexOf(Object o)

Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element. More formally, returns the lowest index i such that (o==null ? get(i)==null : o.equals(get(i))), or -1 if there is no such index.

Parameters

  • o − Element to search for.

Returns

The index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element.

Throws

  • ClassCastException − If the type of the specified element is incompatible with this list (optional).

  • NullPointerException − If the specified element is null and this list does not permit null elements (optional).

Example

Following is the example showing the usage of indexOf() method −

package com.tutorialspoint;

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

public class CollectionsDemo {
   public static void main(String[] args) {
      List<Student> list = new ArrayList<>();
      list.add(new Student(1, "Zara"));
      list.add(new Student(2, "Mahnaz"));
      list.add(new Student(3, "Ayan"));
      System.out.println("List: " + list);
      Student student = new Student(3, "Ayan");
      Student missingStudent = new Student(4, "Aman");
      System.out.println("Ayan is present at: " + list.indexOf(student));
      System.out.println("Aman index: " + list.indexOf(missingStudent));
   }
}
class Student {
   private int id;
   private String name;
   public Student(int id, String name) {
      this.id = id;
      this.name = name;
   }
   public int getId() {
      return id;
   }
   public void setId(int id) {
      this.id = id;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   @Override
   public boolean equals(Object obj) {
      if(!(obj instanceof Student)) {
         return false;
      }
      Student student = (Student)obj;
      return this.id == student.getId() && this.name.equals(student.getName());
   }
   @Override
   public String toString() {
      return "[" + this.id + "," + this.name + "]";
   }
}

Output

This will produce the following result −

List: [[1,Zara], [2,Mahnaz], [3,Ayan]]
Ayan is present at: 2
Aman index: -1
raja
Updated on 09-May-2022 12:23:33

Advertisements