【发布时间】:2014-07-14 19:18:18
【问题描述】:
我想在我的工作中使用多维数组列表。请帮我解决这个问题。我的代码是:
public class newType {
String name;
int id;
public newType() {
name="";
id=0;
}
public newType(String name,int id) {
this.name=name;
this.id=id;
}
}
public class MainClass {
public static void main (String[] args) throws Exception {
HashMap<String, ArrayList<ArrayList<newType>>> temp=new HashMap<String, ArrayList<ArrayList<newType>>>();
ArrayList<ArrayList<newType>> arrObj=new ArrayList<ArrayList<newType>>();
arrObj.clear();
arrObj.add(new ArrayList<ValueType>());
arrObj.add(new ArrayList<ValueType>());
arrObj.add(new ArrayList<ValueType>());
arrObj.get(0).add(new newType("Jhon",1));
arrObj.get(1).add(new newType("get",1));
arrObj.get(1).add(new newType("book",1));
arrObj.get(2).add(new newType("coma",1));
arrObj.get(2).add(new newType("brother",1));
temp.put("Jhon", arrObj);
arrObj.clear();
arrObj.add(new ArrayList<newType>());
arrObj.add(new ArrayList<newType>());
arrObj.add(new ArrayList<newType>());
arrObj.get(0).add(new newType("Mikel",1));
arrObj.get(0).add(new newType("son",,2));
arrObj.get(1).add(new newType("puts",2));
arrObj.get(1).add(new newType("his",1));
arrObj.get(2).add(new newType("when",1));
arrObj.get(2).add(new newType("hich",1));
temp.put("Mikel", arrObj);
arrObj.clear();
arrObj=temp.get("Mikel");
System.out.println(arrObj.get(0).get(0).name);
}
}
当我运行这个程序时,编译器给我以下错误:
线程“主”java.lang.IndexOutOfBoundsException 中的异常:索引:0,大小:0 在 java.util.ArrayList.RangeCheck(未知来源) 在 java.util.ArrayList.get(未知来源) 在 MainClass.main(MainClass.java:47)
错误与arrObj.get(0).get(0).name有关
我该如何解决?
【问题讨论】:
-
一个数组列表和多个维度似乎是不可能的!
-
@RomanC 我不确定你的意思。这不是和数组一样的规则吗?二维数组只是其他一维数组的一维数组。相同的规则可以应用于列表(OP 使用一个 ArrayList 来存储其他 ArrayList)。
-
@Pshemo 列表不是数组,而是自己命名。
标签: java class jakarta-ee arraylist multidimensional-array