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

javaobject oriented programmingprogramming更新于 2025/2/4 21:00:17

List 接口扩展了 Collection 接口,表示存储元素序列的集合。列表用户可以非常精确地控制将元素插入到列表中的位置。这些元素可通过其索引访问,并且可以搜索。ArrayList 是 Java 开发人员中最流行的 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 - 如果指定元素为空,并且此列表不允许空元素(可选)。

lastIndexOf() 方法。

int lastIndexOf(Object o)

注释

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

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

参数

  • o  - 要搜索的元素。

返回

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

抛出

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

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

示例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

相关文章


有用资源