큰 요소 목록을 작성해야합니다 (최대 100,000 개까지 가능). 목록의 각 요소는 목록의 색인과 동일한 정수입니다. 그 후이 목록에서 Collections.shuffle을 호출해야합니다. 내 질문은 어떤 목록 구현 (자바 컬렉션 또는 아파치 컬렉션) 사용해야합니다. 내 직감은 ArrayList를 잘 사용할 수 있습니다. 모든 생각을 환영합니다. 감사합니다.자바에서 대형 목록에 대한 최상의 목록 구현은 무엇입니까
입력 해 주셔서 감사합니다. 나는 ArrayList를 고집하고 있다고 생각한다. 현재 initialCapacity param과 함께 ArrayList 생성자를 사용하고 있으며 목록의 크기를 전달합니다. 따라서 원래 목록이 100000이면 새 ArrayList (100000)로이 새 목록을 만듭니다. 따라서 어떤 크기 조정도되지 않으므로 배열을 만들고 asList를 수행하지 않아도된다고 생각합니다. 또한, 대부분의 아파치 컬렉션 GrowthList와 같은리스트 & LazyList는 RandomAccess를 구현하지 않습니다. 이것은 확실히 shuffle을 늦출 것이다 (javadocs에 따라). FastArrayList는 RandomAccess를 구현하지만 아파치는 "이 클래스는 플랫폼이 아니므로 일부 아키텍처에서는 예기치 않은 오류가 발생할 수 있습니다"라는이 클래스에 대한 참고 사항이 있습니다.
달성하고자하는 목표를 자세히 설명해 주시겠습니까? – rsp
추가 및 셔플 후 목록으로 무엇을합니까? 중간에 요소를 추가/삭제합니까? 끝 부분에 요소를 추가/삭제합니까? 중간에있는 요소를 임의의 순서로 액세스합니까? 아니면 한 끝에서 다른 끝으로 한 번 전달합니까? 그것은 당신이 그걸로 무엇을 할 것인지를 모른 채 결정하기가 정말로 어렵습니다. 당신이하고 싶은 것은 순차적으로 숫자를 추가하고 셔플이라면, ArrayList가 답이라고 말할 수 있습니다. – MAK
100000은 그다지 크지 않습니다. 어레이 목록으로 가장 순진한 방법으로 내 컴퓨터 (Intel Core2 T5600 @ 1.83GHz의 단일 코어)에서 100ms 미만의 시간이 소요됩니다. – starblue