답변:
할당 된 크기, 10. 할당되지 않은 색인에는에 대한 기본값이 포함 0됩니다 int.
우선은 length속성이므로 arr.length대신 arr.length().
그리고 선언 된 크기 인 10을 반환합니다. 명시 적으로 선언하지 않은 요소는 0으로 초기화됩니다.
이 경우 arr.length는 할당 한 배열의 크기 인 10을 반환합니다. 논리적 크기는 고정 길이 배열이므로 여기에는 실제로 적용되지 않습니다.
어레이를 초기화하는 경우 :
int[] arr = new int[10];
Java는 10 개의 요소가있는 배열을 생성하고 이들 모두를 0으로 초기화합니다 .이 유형 및 기타 기본 유형의 초기 값에 대한 자세한 내용은 Java 언어 사양 을 참조하십시오.
`
int 배열 [] = 새로운 int [3]; array.length;
그래서 여기에 우리는 3의 메모리 공간을 가진 배열을 만들었습니다.
0 번째 1 번째 2 번째 ...........> 인덱스 24 5 ...........> 번호
따라서이 배열의 크기는 3이지만 배열의 인덱스는 0 번째 인덱스로 시작하므로 배열의 인덱스는 최대 2입니다.
두 번째 문장의 출력은 배열의 길이가 3이므로 3이됩니다 ... 인덱스 값과 배열의 길이를 혼동하지 마십시오 ....
건배!
int arr[]={4,7,2,21321,657,12321};
int length =arr.length;
System.out.println(length); // will return 6
int arr2[] = new int[10];
arr2[3] = 4;
int length2 =arr2.length;
System.out.println(length2); // // will return 10. all other digits will be 0 initialize because staic memory initialization
배열의 논리적 크기를 원하는 경우 배열의 모든 값을 탐색하여 0과 비교하여 확인할 수 있습니다. 값이 0이 아니고 논리적 크기 인 경우 값을 증가 시키십시오. 배열 크기가 고정되어 있기 때문에 내장 메서드가 없으므로 컬렉션을 살펴 봐야 할 수 있습니다.
그것은해야한다:
int a = arr.length;
괄호는 피해야합니다.
Java 배열은 실제로 크기가 고정되어 있으며 다른 답변은 .length가 실제로 예상 한 작업을 수행하지 않는 방법을 설명합니다. 나는 당신의 질문에 당신이 사용하고 싶은 것이 ArrayList이며, 이는 성장 및 축소가 가능한 배열임을 추가하고 싶습니다.
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
여기에서 .size () 메소드는 목록의 요소 수를 표시하며 항목을 추가 할 때이를 늘릴 수 있습니다.
배열은 자바에서 컴파일 타임에 메모리가 할당되므로 정적이며 명시 적으로 설정되거나 수정되지 않은 요소는 기본값으로 설정됩니다. 이와 같은 코드를 사용할 수 있지만 기본값을 계산하지 않기 때문에 권장되지는 않지만 명시 적으로 초기화하더라도 버그가 발생할 수 있습니다. 다른 사람들이 말했듯이 실제 크기를 찾을 때는 ".length ()"대신 ".length"를 사용해야합니다.
public int logicalArrayLength(type[] passedArray) {
int count = 0;
for (int i = 0; i < passedArray.length; i++) {
if (passedArray[i] != defaultValue) {
count++;
}
}
return count;
}