问题可能出在使用了Arrays.asList()方法将数组转换为列表后,再使用indexOf()方法时出现的。Arrays.asList()方法返回的是一个固定大小的列表,不支持修改操作,包括添加、删除和修改元素。因此,indexOf()方法可能无法返回正确的索引。
解决方法是使用ArrayList来创建列表,而不是使用Arrays.asList()方法。ArrayList是一个可变大小的列表,支持修改操作。
下面是一个使用ArrayList来解决问题的示例代码:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
String[] arr = {"a", "b", "c", "d", "e"};
// 使用ArrayList创建列表
List list = new ArrayList<>(Arrays.asList(arr));
// 使用indexOf()方法查找元素的索引
int index = list.indexOf("c");
System.out.println("元素c的索引为:" + index);
}
}
在上面的代码中,我们先使用Arrays.asList(arr)将数组转换为一个固定大小的列表,然后使用ArrayList的构造方法将其转换为一个可变大小的列表。接着,我们可以使用indexOf()方法来查找元素的索引。输出结果将会是元素"c"的索引为2。
上一篇:Arrays.asList()与Stream.collect()的比较
下一篇:Arrays.asList(MyEnum.values)返回的是List[Array[T]]而不是List[T]。