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

如何获取另一个数组列表中的数组列表实例

澹台景山
2023-03-14

我在数组列表(嵌套数组列表)中有一个数组列表,如下所示

  ArrayList<ArrayList<Integer>> indexOfJSONObject = new ArrayList<ArrayList<Integer>>();

现在我需要获取存在于indexOfJSONObjectarraylist的给定索引中的arraylist的实例并为其添加一个值。我使用了以下代码

    ArrayList<Integer> tempJSONObjectAL= (ArrayList<Integer>)indexOfJSONObject.get(givenIndex);

    tempJSONObjectAL.add(value); 

但是它给了我一个错误

线程"main"java.lang.异常索引:0,大小:0

如何解决这个问题以及为什么会发生这种情况。

谢谢你

共有3个答案

严安志
2023-03-14

尝试以下代码:

ArrayList<ArrayList<Integer>> indexOfJSONObject = new ArrayList<ArrayList<Integer>>();
        ArrayList<Integer> tempJSONObjectAL=new ArrayList<Integer>();

        for(ArrayList<Integer> list:indexOfJSONObject)
        {
            tempJSONObjectAL.add(list.get(index));

        }
蒋英博
2023-03-14

原因这很简单。此错误是因为indexOfJSONObject是一个本身包含ArrayList的ArrayList。但indexOfJSONObject中没有任何ArrayList
您最初是从indexOfJSONObject获取ArrayList,但其中没有ArrayList实例化
您需要将ArrayList的新实例化添加到indexOfJSONObject,然后使用它 通过添加一个特定的语句将解决问题。只需在下面检查我的代码

ArrayList<ArrayList<Integer>> indexOfJSONObject = new ArrayList<ArrayList<Integer>>();

//This line of code is required in your case
indexOfJSONObject.add(new ArrayList<Integer>());

ArrayList<Integer> tempJSONObjectAL= (ArrayList<Integer>)indexOfJSONObject.get(givenIndex);

tempJSONObjectAL.add(value); 
干子瑜
2023-03-14

这里的问题似乎是列表大小为0,而您仍然试图访问位置为0的元素。

您永远不应该尝试直接访问集合中的元素,而不使用循环/迭代器或不检查大小和givenindex。你的代码应该是这样的

ArrayList<Integer> tempJSONObjectAL= null;
if(indexOfJSONObject.size() > givenIndex)
    tempJSONObjectAL = (ArrayList<Integer>)indexOfJSONObject.get(givenIndex);
 类似资料:
  • 我正在尝试制作一个纸牌游戏,它有游戏类、纸牌类、玩家类、副牌类和手牌类。我想让它模拟现实生活,你从一副牌中抽5张牌到你手上 我让我的班级玩家将所有的卡片添加到一个叫做卡片的卡片组中。像这样: 它把它传递给我的班级甲板: 我在类手叫手创建了一个手数组列表: 如何将 5 个随机卡牌对象从我的套牌数组列表添加到我的手牌数组列表中?

  • 很抱歉这太模糊了,但代码太多了。 这是一个五卡梭哈游戏。基本上,我试图将对象添加到另一个数组列表中的数组列表中。 这是我创建玩家数组并将手类中的数组添加到其中的地方,至少我认为这就是正在发生的事情: 稍后,我尝试在循环交易中将牌添加到玩家阵列中的手牌阵列中。由于有五张牌,第一个循环进行了五次。第二个是玩家数组的长度(玩家总数),每次应该添加一张卡。 Deck类中有一个deal方法,由以下方法初始化

  • 我想在Sokoban游戏中保存我的玩家角色的步骤。首先我想用字符的实际位置填充一个int x和y的数组,称为“pos”。然后我想将这个数组添加到数组的ArrayList中,称为“moves”。 一个玩家位置的阵列: ArrayList为所有步骤,玩家在关卡: 如果将“int[]”放在ArrayList的尖括号内,则会出错。 如何将阵列位置添加到ArrayList移动?

  • 我用python制作了这个数组,但我不记得用java怎么做:

  • 我试图通过结合两种算法来返回最佳路径来解决旅行商问题 第一种算法使用环境ArrayList生成最佳路径 第二种算法将优化第一种算法获得的路由,但在这样做时,我需要创建一个新的ArrayList,即环境ArrayList,它被洗牌以匹配最佳路径数组的顺序 请你帮我做这个,因为我在洗牌环境数组列表时遇到了麻烦 这是环境ArrayList,其中每个节点由name、x cords、y cords组成: 返

  • 我试图确定数组列表中的数字是否可以被antoher数组列表中的所有数字整除。我下面的代码输出列表中的所有数字,这些数字可以被中的任何除数整除。我想输出列表中所有除数都可以整除的值,而不是它们中的任何一个。例如,如果我有listdiv=[1,2,3,,5,8]和listdivisor=[2,4]。预期的输出应该是8,但此代码输出2和8。 非常感谢。我们将非常感谢您的努力!