【发布时间】:2016-10-05 11:33:54
【问题描述】:
每当我尝试向第一个内部数组添加一个元素时,它都会出现越界异常。我正在尝试创建一个二维数组列表来将名称存储在第一个插槽中,然后存储 30 个等级。我无法弄清楚如何向内部数组列表添加任何内容。错误被抛出 ((ArrayList)matrix.get(i)).set(0, nameIn);在那条线上。
import java.util.*;
/**
*
* @author mitchell castaldini
* @version 5/5/2016
*/
public class gradebookTester
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
/*List<List<String>> lists = new ArrayList<List<String>>();
for(int i = 0; i < numNames;i++)
{
lists.add(new ArrayList<String>());
}*/
ArrayList matrix = new ArrayList();
//matrix.add(row1);
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
matrix.add(new ArrayList());
makeArrays(matrix);
}
private static void makeArrays(ArrayList matrix)
{
ArrayList row1 = new ArrayList();
matrix.add(row1);
Scanner in = new Scanner(System.in);
int a = 2;
for(int i = 0; i < a; i++)
{
System.out.println("Add name");
String nameIn = in.next();
row1.set(0, nameIn);
//((ArrayList)matrix.get(i)).set(0, nameIn);
for(int d = 0; d < 10;d++)
{
System.out.println("Add the " + (d+1) + " grade");
int gradeIn = in.nextInt();
((ArrayList)matrix.get(i)).set(d, gradeIn);
}
}
}
}
【问题讨论】:
-
不要使用raw types:
ArrayList。 总是 表示您期望的元素类型,例如ArrayList<String>,ArrayList<ArrayList<String>>. -
我想你想要的是一个 Map
>。 -
matrix.get(i).add(gradeIn);- 快速修复。缓慢修复:遵循@TheHeadRush 的建议 -
我可以使用地图访问特定的插槽吗,因为这是我几天前遇到的问题@TheHeadRush
标签: java arraylist multidimensional-array