2014-03-26 5 views
0

빠른 질문. ArrayListbigArrayListArrayList, ArrayList으로 정의한다고 가정 해 보겠습니다. bigArrayListArrayList 이외의 다른 데이터 형식이 포함되어 있습니까? int, String과 같은 다른 데이터 유형, 객체 또는 간단한 배열? ArrayList를 창출ArrayList의 ArrayList

예제 코드 : 또한 내가이 bigArrayList에 추가 된 후에는 smallArrayList 수정에 대한 갈 것이라고 어떻게

ArrayList<ArrayList<String>> bigArrayList = new ArrayList<ArrayList<String>>(); 
    ArrayList<String> smallArrayList = new ArrayList<String>(); 
    bigArrayList.add(smallArrayList); 

    int myInt = 12; 
    bigArrayList.add(smallArrayList); //Acceptable?? 

? 미리 감사드립니다.

+0

당신은 나에게 말해 ... 제네릭의 요점은 뭐지 ..? – TheLostMind

+0

다른 데이터를 저장하고 무슨 일이 있었는지 알려주십시오. –

답변

3

아니요, ArrayListArrayListsArrayList을 제외한 다른 요소를 포함 할 수 없습니다. 그러나 다른 것을 넣으려고하면 컴파일러 오류가 발생합니다. 그러나 bigArrayList은 형식 정보없이 으로 정의 할 수 있으며 원하는 내용을 저장할 수 있습니다. 따라서 매우 위험한 방식이므로 제네릭을 사용하십시오.

+0

컴파일러 오류에 대한 정보를 추가 할 수도 있습니다 :'Generic Array Creation' ... – Astrobleme

1

컬렉션에서 Generics ("<")를 사용하는 요점은 컴파일러에서 특정 유형 (및 그 서브 클래스) 객체 만 가져 오는 것임을 알리는 것입니다. 따라서 bigArrayList에는 다른 유형을 넣을 수 없습니다. darijan이 제안 했으므로 Generics를 사용하지 않음으로써이 문제를 해결할 수 있습니다. 그가 경고했듯이, 이것은 권장되지 않습니다. 이후 smallArrayList 개질

그 중 수정하는 데 필요한 코드 bigArrayList (예컨대 bigArrayList.get(0) 수정)로부터 smallArrayList의 기준을 복구하거나 smallArrayList 참조를 유지하고 수정 코드에 그것을 전달 bigArrayList에 첨가.

그런데 코드로 무엇을하려고합니까? 여기에서하려는 것은 오히려 드문 경우입니다.

관련 문제