如何在 Java 对象列表中搜索?


List 接口扩展了 Collection 接口,表示存储元素序列的集合。列表的用户可以非常精确地控制要在列表中插入元素的位置。这些元素可以通过其索引访问,并且可以搜索。在 Java 开发人员中,ArrayList 是 List 接口最流行的实现。

Java List 接口提供了两种方法,indexOf() 方法可用于获取元素在列表中的位置,lastIndexOf() 方法可用于获取元素的最后一次出现。在本文中,我们将讨论 indexOf() 和 lastIndexOf() 方法以在列表中搜索元素。

indexOf() 方法。

int indexOf(Object o)

说明

  • 返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回 -1。

  • 返回最低索引 i,使得 (o==null ? get(i)==null : o.equals(get(i))),如果不存在这样的索引,则返回 -1。

参数

  • o - 要搜索的元素。

返回值

此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回 -1。

抛出

  • ClassCastException - 如果指定元素的类型与该列表不兼容(可选)。

  • NullPointerException - 如果指定元素为 null 且此列表不允许 null 元素(可选)。

lastIndexOf() 方法。

int lastIndexOf(Object o)

说明

  • 返回此列表中指定元素最后一次出现的索引,如果此列表不包含该元素,则返回 -1。

  • 返回最高索引 i,使得 (o==null ? get(i)==null : o.equals(get(i))),如果不存在这样的索引,则返回 -1。

参数

  • - 要搜索的元素。

返回值

此列表中指定元素最后一次出现的索引,如果此列表不包含该元素,则返回 -1。

抛出

  • ClassCastException - 如果指定元素的类型与该列表不兼容(可选)。

  • NullPointerException - 如果指定元素为 null 且此列表不允许 null 元素(可选)。

示例 1

以下示例显示了 indexOf() 方法的使用:

package com.tutorialspoint;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class CollectionsDemo {
   public static void main(String[] args) {
      List<Integer> list = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,0));
      System.out.println("List: " + list);
      int positionOfFive = list.indexOf(Integer.valueOf(5));
     
      System.out.println("5 is present at index: " + positionOfFive);
      int positionOfTen = list.indexOf(Integer.valueOf(10));
      System.out.println("10 is present at index: " + positionOfTen);
   }
}

输出

这将产生以下结果:

List: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
5 is present at index: 4
10 is present at index: -1

示例 2

以下示例显示了 lastIndexOf() 方法的使用:

package com.tutorialspoint;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class CollectionsDemo {
   public static void main(String[] args) {
      List<Integer> list = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5));
      System.out.println("List: " + list);
      int positionOfFive = list.lastIndexOf(Integer.valueOf(5));
     
      System.out.println("5 is present at index: " + positionOfFive);
      int positionOfTen = list.lastIndexOf(Integer.valueOf(10));
      System.out.println("10 is present at index: " + positionOfTen);
   }
}

输出

这将产生以下结果:

List: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5]
5 is present at index: 14
10 is present at index: -1

更新于: 2022-05-26

3K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告