혹시 ArrayList 안에 ArrayList를 넣는 방법이 성능에 많이 안좋은가요?


ArrayList<T> list1;
ArrayList<T> list2;
ArrayList<T> list3;
ArrayList<T> list4;

이것과

ArrayList<ArrayList<T>> list; 

이 것이 같은 역할을 할 수 있을 것이라고 생각이 되긴 하는데( 아직 직접 해보지는 않았지만...) 밑의 방법이 혹시 성능면에서 위의 방법과 차이가 많이 날까요?


조회수 593


2 답변


좋아요
1
싫어요
채택취소하기

성능 차이는 없다고 보시면 되고요, 용도에 맞게 사용하시면 됩니다.

원하는 변수가 고정이라면 위처럼 각각 변수에 선언해 주시는게 맞는 용법입니다.

ex) 좋은 목록과, 나쁜 목록 각 2가지가 필요한 경우

ArrayList<String> goodItems = new ArrayList<String>();
ArrayList<String> badItems = new ArrayList<String>();

원하는 변수의 수가 가변적일 때는 아래 처럼 사용하시면 됩니다.

ex) N명 사람들이 가지고 있는 모든 목록 들의 목록 1개

ArrayList<ArrayList<String>> numOfList = new ArrayList<ArrayList<String>>();     
  • 2016년 04월 01일에 작성됨
    프로그래밍 언어를 좋아하는 프로그래머


멀티 array vs 싱글 array의 차이를 물어보시는 건가요?

그게 맞다면 아래 링크를 보시면 거의 차이가 없지만 컴파일된 바이트 코드를 보면 멀티 array가 오브젝트를 로드하는 인스트럭션이 하나 더 있어서 인지 멀티 array가 느리게 나타나는것 같해요. http://stackoverflow.com/questions/2512082/java-multi-dimensional-array-vs-one-dimensional

ArrayList 여러개 만든거와 하나 만들어서 쭉 넣는거의 차이를 물어보시는 거라면, 하나 만든게 메모리적인 면에서 이득이라 후자가 더 좋을 것 같습니다.

  • 2016년 04월 01일에 작성됨
    프론트앤드, 임베디드 초보개발자입니다

  • 아고 ㅠㅠㅠ 글쓸 때는 정상적으로 들어갔는데 올린다음에 확인을 안해서 이상하게 올라간 것을 몰랐네요 ㅠ 수정하여서 다시 올렸습니다 ㅠ     TuTanKhamen   2016.4.1 21:59     
  • 수정을 하였는데 답변해주신 것이랑 같은 문제인 것인지는 잘 모르겠네요... 변수나 객체의 배열은 []를 통해 생성할 수 있다는 것은 알지만, 저렇게 ArrayList나 또.. 뭐가있더라.. 저러한... 다른 클래스? 를 사용한 것은 조금 다르게 동작하는지 어떤지 잘 모르겠네요..    TuTanKhamen   2016.4.1 22:00     
  • 저 꺽쇄안에 들어가는 건 타입을 알려주는 제네릭 내용이라서 밑에 처럼 사용하지 않습니다. Array 나 arraylist 의 차이는 크기가 알아서 늘어난다는거와 프리미티브 타입의 사용유무 차이정도 빼곤 별반 다를거 없는걸로 알고있습니다. 질문하신 내용을 배열이라고 가정하면 답변 단 내용과 같은 내용인 것 같습니다. 결론은 질문하신 대로 작동안할것 같고, 배열이라고 봤을 때 배열 여러개 만드는거랑 하나에 쭉 넣는거랑의 차이는 크게 안나고, 나머지는 링크 단 내용으로 답변이 될 것 같네요.     한인규   2016.4.1 23:32     
  • 꺽쇄 안에는 타입변수가 위치하게 됩니다. T도 타입변수지만, ArrayList[T] 역시 타입변수 입니다. 따라서 유효한 선언입니다.    정대원   2016.4.1 23:46     
  • 아 그렇겠네요!    한인규   2016.4.1 23:48     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close