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

조회수 7942회
ArrayList<T> list1;
ArrayList<T> list2;
ArrayList<T> list3;
ArrayList<T> list4;

이것과

ArrayList<ArrayList<T>> list; 

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

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

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

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

    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>>();     
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
  • 멀티 array vs 싱글 array의 차이를 물어보시는 건가요?

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

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

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 아고 ㅠㅠㅠ 글쓸 때는 정상적으로 들어갔는데 올린다음에 확인을 안해서 이상하게 올라간 것을 몰랐네요 ㅠ 수정하여서 다시 올렸습니다 ㅠ 알 수 없는 사용자 2016.4.1 21:59
    • 수정을 하였는데 답변해주신 것이랑 같은 문제인 것인지는 잘 모르겠네요... 변수나 객체의 배열은 []를 통해 생성할 수 있다는 것은 알지만, 저렇게 ArrayList나 또.. 뭐가있더라.. 저러한... 다른 클래스? 를 사용한 것은 조금 다르게 동작하는지 어떤지 잘 모르겠네요.. 알 수 없는 사용자 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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)