1

我有一个 ArrayList,我正在尝试测量从 ArrayList 中间检索项目所需的时间。

这里是:

  List<Car> cars = new ArrayList<Car>();

    for (int i = 0; i < 1000000; i++) {
        cars.add(new Car(null, i));

我将如何检索项目 500000?

我尝试创建一个像 int example = 500000 这样的变量,然后放入 cars.get(example)。但我只是得到了错误:

java.lang.IndexOutOfBoundsException:索引:500000,大小:1

为什么即使我请求的索引 < 总条目,我也会收到 IndexOutOfBoundsException?

任何帮助,将不胜感激。谢谢。

4

3 回答 3

3

使用get()功能

cars.get(500000);

编辑

IndexOutOfBoundsException表示您正在尝试检索列表之外的信息。

您的错误与您正在使用的功能无关,您可能在其他地方犯了错误。请意识到您是否正在填充并尝试从同一个变量中读取。

于 2013-11-01T16:02:07.523 回答
1

您的列表名为汽车,但您要添加到名为汽车的列表中。

于 2013-11-01T16:02:09.133 回答
0

如果你想创建一个数据的索引集合,你可能想要使用 ArrayList 以外的东西......例如考虑一个 HashMap:

HashMap<Integer, Car> map = new HashMap<>();
for (int i = 0; i < 1000000; i++) {
    map.put(i, new Car(null, i));
}

Car c = map.get(500000);
于 2013-11-01T16:02:36.863 回答