当前位置: 首页 > 面试题库 >

在索引处添加到ArrayList时出现IndexOutOfBoundsException

陆文康
2023-03-14
问题内容

我得到Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 0以下代码的异常。但是不明白为什么。

public class App {
    public static void main(String[] args) {
        ArrayList<String> s = new ArrayList<>();

        //Set index deliberately as 1 (not zero)
        s.add(1,"Elephant");

        System.out.println(s.size());                
    }
}

我可以使它起作用,但是我试图理解这些概念,因此我将声明更改为以下内容,但也没有起作用。

ArrayList<String> s = new ArrayList<>(10)

问题答案:

ArrayList索引从0开始(零)

您的数组列表大小为0,并且要在第一个索引处添加String元素。如果不在第0个索引处添加元素,则无法添加下一个索引位置。错了

因此,只需使其成为

 s.add("Elephant");

或者你可以

s.add(0,"Elephant");


 类似资料:
  • 问题内容: 我认为这是一个非常简单的问题,但我不知道如何正确执行此操作。 我有一个空的arraylist: 我有一些要添加的对象,每个对象必须位于某个位置。但是,有必要可以按每种可能的顺序添加它们。当我尝试此操作时,它不起作用,我得到了: 我曾尝试是填充用,然后做以上。它有效,但是我认为这是一个可怕的解决方案。还有另一种方法吗? 问题答案: 您可以这样做: 将对象2添加到位置2后,它将把对象3移动

  • 问题内容: 我在Java中有这样的双重经历。 现在,我想做的是通过循环在列表的零索引中添加5个值,在索引1中添加5个值。 第零个索引将具有值 索引1将具有值 并且所有这些值都按以下顺序存储在双精度数组中 我该怎么做? 问题答案: @Ahamed有一点,但是如果您坚持使用列表,那么可以有三个这样的arraylist: 编辑: 如果您在下面的列表中有这些值: 你想做的就是把它们结合起来,对吗?您可以尝

  • 我正在尝试使用以下方法将元素添加到名为activList的ArrayList中: 但是我在运行代码时在这一行得到了一个NullPointerExcema: 我确实读过这一页:什么是NullPointerException,如何修复它?(请不要重复报告) 我所理解的是,我得到错误是因为我的ArrayList没有任何元素。但是,我尝试在创建后立即添加一个,如下所示: 但我得到了一个错误:“意外标记:(

  • 对于如何向已经存在的Lucene索引添加方面,我有点困惑。 我有一个使用Lucene 3.1创建的Lucene索引(创建时没有任何方面)。 我已经查看了Lucene文档中的facet,在那里他们向您展示了如何从头创建一个带有facet的索引,也就是说,您创建一个新的Lucene对象,使用分类工具向其添加facet信息(类别),然后在Lucene索引中编写该文档(使用)这还将向分类法索引添加额外数据

  • 我需要在两个结账页面中显示订单摘要,即当您在Magento2默认设置中在购物车中添加产品后将转到以下URL时: localhost/magento216/签出/ localhost/magento216/结账/#付款 您可以检查第一个URL中的订单摘要不包含order totals块。请查看截图寻求帮助。 我想要的是在localhost/magento216/checkout/类似地工作在loca

  • 问题内容: 我正在尝试通过数组列表使用foreach循环,但是当我使用它时,它会给我带来错误,但是当我使用正常的for循环时,它可以正常工作,这可能是什么问题? 代码在这里: 这是无效的循环,这是有效的循环: 使用foreach循环时出现的错误是: 问题答案: 终使用Immutable集合类并构建新的集合类,而不要尝试修改单个共享类,但我想使其更加明确。 Guava很好地支持这一点,用于传递数据。