고정 크기의 ArrayList를 초기화 할 수 있습니까? 그러면 그 이상 증가하지 않고 모든 초기 점유율을 0으로 시작할 수 있습니까? 실제로 실제 배열에서 일반적인 배열처럼 동작하도록 강제하므로 배열 크기만큼 add() 개까지 사용할 수 있습니다.최대 크기의 ArrayList를 초기화하십시오.
답변
당신은
List<Integer> list = Arrays.asList(new Integer[desiredLength]);
이 모든 요소가 null
으로 초기화되는 고정 된 크기 List<Integer>
을 생산하기 위해 사용할 수 있습니다. 그런 다음 list.set(index,value)
을 사용하여 List
의 요소를 수정할 수 있습니다. add
을 사용할 수 없습니다. add
은 List
의 size
을 변경하므로 고정 크기 목록에는 허용되지 않습니다. 당신이 null이 아닌 값으로 목록을 초기화 할 경우
, 당신은 같은 것을 할 수 있습니다
Integer[] arr = new Integer[desiredLength];
Arrays.fill(arr,0);
List<Integer> list = Arrays.asList(arr);
아마 가장 좋은 방법인데, 실제 ArrayList를 생성하지는 않습니다. –
@DiegoMartinoia 실제 ArrayList (즉, java.util.ArrayList)는 OP가 요청한대로 고정 크기를 가지고 있지 않습니다. – Eran
그래, 내가 아는 :) 나는 방금 AL에 할당하려고 시도했을 때 그것을 언급할만한 가치가 있다고 생각하고 오류 –
이유와 기본적으로 간단하게 배열되어 정상 array
오히려
ArrayList
보다는 ArrayList를 사용하지 우리가 더 많은 항목을 추가해야하는 상황에 대한 지원. 우리는 단지 기존의 배열처럼보다 그의 ArrayList의 크기를 변경하지 않는 경우
에 의아해한다. 나는 그것을 사용하고 싶지만 나는 5 개의 크기로 모든 arraylist를 초기화하려고한다. 처음에는 0이됩니다. 다시 시작하고 어떤 조건에 따라 시작에서 1을 할당하십시오. 결국 5 개의 elemnts 1이 모두있는 경우, 테스트가 성공적이라는 것을 의미합니다. 그렇지 않으면 단일 0이 있으면 false를 나타냅니다. –
일반적인'array'를 사용할 때의 문제점은 무엇입니까? 크기 5의 배열을 초기화 할 수 있고 초기화하는 동안 모든 값은 0이 될 것이고, 그런 다음 작업을 계속할 수 있습니다. –
당신 만의 ArrayList를 사용하여 ArrayList의 최소 크기를 확인 할 수 있습니다
ArrayList<T> myArrayList = new ArrayList();
myArrayList.ensureCapacity(n);
을하지만하지 않습니다 n보다 큰 크기의 고정 된 크기를 설정하면 n보다 더 많이 추가 할 수 있습니다.
다른 사람이 언급했듯이 다른 작업을하는 것이 좋습니다. 실제로 그것을 이루고 싶다면 자신 만의 컬렉션을 쓸 수 있습니다 :
public class MyArrayList<T> {
ArrayList<T> arrayList;
int size;
public MyArrayList(int size) {
this.size = size;
arrayList = new ArrayList<>();
arrayList.ensureCapacity(size);
}
public void add(T x) {
if (arrayList.size() >= size) {
throw new IllegalStateException();
}
arrayList.add(x);
}
//remove, etc.. . You can even extend/implement arrayList/list if you want to do polymorphism.
}
- 1. struts2 반복기를 사용하거나 arraylist를 초기화하십시오.
- 2. 포장 최대 크기의 사각형
- 3. 최대 크기의 임의 크기 행렬
- 4. 최대 크기의 사각형으로 채우기 영역
- 5. 벡터 벡터의 크기를 초기화하십시오.
- 6. 시퀀스를 최대 크기의 연속 세트로 나눕니다. K
- 7. np.fromfile에서 파일 크기의 최대 한도는 무엇입니까?
- 8. SPI 프로토콜을 사용하는 최대 크기의 SD 카드
- 9. 다양한 크기의 타일로 채우기 최대 간격 사용
- 10. 최대 캐시 크기의 PHP 캐시 구현
- 11. 최대 크기의 배경 이미지가 표시되지 않습니다.
- 12. 최대 크기의 위젯이 AlignHCenter를 따르지 않습니다.
- 13. 다른 크기의 이미지에 대한 최대 높이 설정
- 14. ArrayList를
- 15. ArrayList를
- 16. ArrayList를
- 17. java.lang.ClassCastException가 : ArrayList를 호환/ArrayList를 최대 절전 모드 및 GenericDAO 인터페이스를 사용하여
- 18. 동적 길이를 가진 wchar_t를 초기화하십시오.
- 19. 일부 0으로 int 배열을 초기화하십시오.
- 20. 비어있는 HashMap을 초기화하십시오.
- 21. ResourceManager를 동적으로 초기화하십시오.
- 22. 코드에서 infopath를 초기화하십시오.
- 23. 동적 배열 C를 초기화하십시오.
- 24. 벡터에서 포인터를 초기화하십시오.
- 25. application.properties를 사용하여 객체를 초기화하십시오.
- 26. pyside가있는 빈 QImage를 초기화하십시오.
- 27. 인스턴스를 PHP로 초기화하십시오.
- 28. Swift에서 CLCircularRegion을 초기화하십시오.
- 29. 강제로 데이터 바인딩을 초기화하십시오.
- 30. 콘텐츠로 주석을 초기화하십시오.
아니요. 이것은 [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)와 같습니다 : 달성하려는 것은 무엇입니까? 어쩌면 제한된 대기열이 더 적합할까요? – assylias
왜 정상 배열 자체를 사용하지 않습니까? 정확한 동기는 무엇입니까? –
예를 들어 LinkedList와 같은 다른 arraylist 구현을 시도하십시오. – mattymanme