欢迎访问宙启技术站
智能推送

Java函数:如何在列表中找到指定元素的索引?

发布时间:2023-06-11 18:02:14

在Java中,我们可以使用indexOf()和lastIndexOf()函数来查找列表中指定元素的索引。这些函数可以在List,ArrayList,Vector和LinkedList上使用。

Indexof()函数:

indexOf()函数返回特定元素在列表中第一次出现的索引。如果该元素不在列表中,则返回-1。

语法:

public int indexOf(Object o)

示例:

List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
int index = list.indexOf("B");
System.out.println("Index of B: " + index);

输出:Index of B: 1

这个例子中,我们首先创建一个String型的ArrayList“list”,并向里面添加三个元素,A,B和C。我们接着使用indexOf()函数来查找“B”元素的索引。

lastIndexOf() 函数:

lastIndexOf()函数返回指定元素在列表中最后一次出现的索引。如果该元素不在列表中,则返回-1。

语法:

public int lastIndexOf(Object o)

示例:

List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("B");
int index = list.lastIndexOf("B");
System.out.println("Index of last B: " + index);

输出:Index of last B: 3

在这个例子中,我们创建了一个包含四个元素的List,其中包含两个“B”元素。我们使用lastIndexOf()函数来查找最后一个“B”元素的索引,它将返回3。

需要注意的是,无论是indexOf()还是lastIndexOf()函数都可以使用泛型(Generics)类型来定义列表类型。此外,在LinkedList上使用这两个函数时,时间复杂度是O(n)的,因为要迭代整个链表来找到元素。但是,在ArrayList和Vector上使用时,其时间复杂度是O(1),因为它们使用了基于数组的实现来表示列表。