표준 배열을 사용하는 것과 같은 ArrayList (또는 다른 컬렉션)를 사용하고 싶습니다. 특히ArrayList의 시작 크기
, 나는 그것이 intial 크기 (예를 들어, SIZE)로 시작하고 바로 박쥐 명시 적 요소를 설정 할 수
예를 들어, 원하는
array[4] = "stuff";
는 그러나
array.set(4, "stuff");
을 작성할 수 있습니다, 다음 코드는 IndexOutOfBoundsException이 발생합니다 :이 작업을 수행하는 몇 가지 방법이 알고
ArrayList<Object> array = new ArrayList<Object>(SIZE);
array.set(4, "stuff"); //wah wahhh
을,하지만 난 궁금했다 사람들이 좋아하는 것이 있거나 사용하기에 더 좋은 컬렉션이었을 것입니다. 현재, 나는 다음과 같은 코드를 사용하고 있습니다 : 나는 잠재적 번 (수만)의 무리를 실행할 수 루프에서이 일을하고 있기 때문에 질문을하기도
ArrayList<Object> array = new ArrayList<Object>(SIZE);
for(int i = 0; i < SIZE; i++) {
array.add(null);
}
array.set(4, "stuff"); //hooray...
유일한 이유입니다. ArrayList 크기 조절 비헤이비어가 "지정되지 않았습니다."라고 가정하면 크기를 조정하거나 배열을 백업하는 여분의 미사용 부분에 메모리를 낭비하지 않아도됩니다. 배열 (array의 거의 모든 셀)을 array.set()에 대한 호출로 채울 것이므로 은 결코의 용량을 초과하지 않을 것이기 때문에 이것은 논점이 될 수 있습니다.
차라리 일반 배열을 사용하고 싶지만 내 사양에서는 Collection을 사용해야합니다.
알아두기 : 용량 : Arrays.asList()를 사용하는 것에 관해서는 생각해 봤지만, 그때마다 (필자는 라이브러리) 매번 배열 전체를 반복해야한다. 나는 이것이 모든 null을 추가하기 위해 SIZE 시간을 반복하는 것보다 나쁘지 않다고 생각한다. – biggusjimmus
은 선형 복잡성에 대해 그렇게 걱정하지 않아도됩니다. – Bozho
당신이 옳을 수도 있습니다. 나는 거의 picayune 화제이기 때문에, 이것을 게시하는 것을 거의 걱정하지 않았다. 내 구현 괜찮아요, 그냥 보인다 ... 잘못. – biggusjimmus