当前位置: 首页 > 知识库问答 >
问题:

线程“main”java.lang.IndexOutOfBoundsException:Index:0,Size:0与ArrayList异常?

董品
2023-03-14

“线程”main“java.lang.IndexOutOfBoundsException:Index:0,Size:0”是我编译此方法时得到的主要错误:

public static ArrayList<ArrayList<Integer>> createSparseArray(int len, double den) {
    int counter = 0;
    ArrayList<Integer> placeHolder = new ArrayList<Integer>();
    for (int j = 0; j < len; j++) {
        double randomNumber = Math.random();
        if (randomNumber < den) {
            counter++;
            placeHolder.add(j);
        }
    }
    ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
    for (int k = 0; k < counter; k++) {
        for (int m = 0; m < 2; m++) {
            list.get(0).set(placeHolder.get(k), (int) (Math.random() * (99999) + 1));
        }
    }
    return list;
}

我该怎么解决这个?

共有1个答案

翟曦
2023-03-14

arraylist >list 在第0个位置不包含任何元素,当编译器在指定位置找不到任何元素时,在迭代时抛出越界异常。

当您尝试执行list.get(0).set(placeholder.get(k),(int)(Math.random()*(99999)+1));语句时,列表中不包含任何元素。您需要迭代内部列表来设置列表的值。

 类似资料:
  • 不断得到这个错误,不确定为什么有人可以帮助:

  • 我想使用来表示优先级队列。所以我想在ArrayList的特定位置添加项。但当我运行它时,系统告诉我 线程“main”java.lang.IndexOutOfBoundsException:索引:10,大小:0。

  • 我正在尝试将文件读取到中,但它提供了一些异常。我正在使用POI库。我该怎么办?请帮帮我。这是我的代码: 这是:

  • 问题内容: 我正在尝试为两个不同的Linux环境构建一个简单的C程序。在一个设备上,程序运行正常,在另一设备上,程序生成浮点异常。该程序除了从main返回0之外什么都不做,这使我相信与启动代码也许不兼容,也许是ABI? 该程序使用gcc编译,具有以下构建规范: 使用内置规格。目标:i386-redhat-linux配置为:../configure –prefix = / usr –mandir =

  • 我试图为两个不同的Linux环境构建一个简单的C程序。在一个设备上程序运行良好,在另一个设备上程序产生浮点异常。该程序除了从main返回0外什么也不做,这让我相信与启动代码有一些不兼容的地方,也许是ABI? 该程序是用gcc编译的,具有以下构建规范: 使用内置规格。目标:i386-redhat-linux配置为:../configure--prefix=/usr--mandir=/usr/shar

  • 我对Java非常陌生,似乎遇到了一些奇怪的错误。我到处寻找解决方案,我遇到的所有解决方案都与我已有的完全相同。 我已经编写了一个类,将目的地添加到ArrayList,但它不起作用。 我得到了这个错误:“线程中的异常”main“java.lang.NullPointerException” 这是我的代码: 我试图添加到ArrayList的数据的代码是这样的: 它退出方法中的程序,并且不将目标添加到数