내 작업에 다차원 arraylist를 사용하고 싶습니다. 이 문제를 해결하도록 도와주세요. 내 코드는 :이 프로그램을 실행하면다차원 Arraylist (색인 오류)
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);
}
}
는, 컴파일러는 나에게 다음과 같은 오류를 제공합니다 :
오류가 arrObj.get 관련이Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at MainClass.main(MainClass.java:47)
(0) 갔지 (0)
을 .NAME어떻게 해결할 수 있습니까?
한 배열 목록과 여러 차원 불가능 보인다! –
@RomanC 무슨 뜻인지 모르겠다. 배열과 같은 규칙이 아닌가요? 2 차원 배열은 다른 1 차원 배열의 1 차원 배열입니다. 동일한 규칙을 List에 적용 할 수 있습니다 (OP는 하나의 ArrayList를 사용하여 다른 ArrayList를 저장합니다). – Pshemo
@Pshemo 목록은 배열이 아니며 이름은 자신의 이름입니다. –