如何在 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。
参数
o - 要搜索的元素。
返回值
此列表中指定元素最后一次出现的索引,如果此列表不包含该元素,则返回 -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