Java 如何在对象列表中搜索
列表接口扩展了集合接口,并表示存储元素序列的集合。列表的用户对于在列表中插入元素有相当精确的控制。这些元素可以通过它们的索引进行访问和搜索。ArrayList是Java开发人员中最受欢迎的列表接口实现。
Java列表接口提供了两个方法,indexOf()方法可以用于获取列表中元素的位置,lastIndexOf()方法可以用于获取最后一个出现的元素。本文讨论了indexOf()和lastIndexOf()方法来搜索列表中的元素。
indexOf()方法
int indexOf(Object o)
注释
- 返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回-1。
-
返回最低索引i,使得(onull ? get(i)null : o.equals(get(i))),如果没有这样的索引,则返回-1。
参数
- o - 要搜索的元素。
返回值
返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回-1。
抛出异常
- ClassCastException - 如果指定元素的类型与此列表不兼容(可选)。
-
NullPointerException - 如果指定元素为null,且此列表不允许null元素(可选)。
lastIndexOf()方法
int lastIndexOf(Object o)
注意事项
-
返回指定元素在列表中最后一次出现的索引,如果列表中不包含该元素则返回-1。
-
返回最高索引i,使得(onull ? get(i)null : o.equals(get(i))),如果不存在这样的索引则返回-1。
参数
- o - 要搜索的元素。
返回值
指定元素在列表中最后一次出现的索引,如果列表中不包含该元素则返回-1。
抛出异常
- ClassCastException - 如果指定元素的类型与该列表的类型不兼容(可选)。
-
NullPointerException - 如果指定元素为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