자바의 배열 길이
아래와 같이 배열을 선언했습니다.
int[] arr = new int[10];
그런 다음 배열에 다음 값을 할당했습니다.
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
그런 다음 정수 변수를 선언하고 초기화했습니다.
int arrayLength = arr.length;
이것은 실제 크기를 찾는 데 유용하지만 배열의 논리적 크기를 찾는 방법이 있습니까?
할당 된 크기, 10
. 할당되지 않은 색인에는에 대한 기본값이 포함 0
됩니다 int
.
우선은 length
속성이므로 arr.length
대신 arr.length()
.
그리고 선언 된 크기 인 10을 반환합니다. 명시 적으로 선언하지 않은 요소는 0으로 초기화됩니다.
배열의 길이를 찾으려면 속성을 A
사용해야합니다 length
. 그것은 그대로 A.length
사용하지 않는, A.length()
그것 주로 문자열 관련 개체의 크기에 사용합니다.
길이 속성은 항상 초기화 중에 배열에 할당 된 총 공간을 표시합니다.
이러한 종류의 문제가있는 경우 간단한 방법은 실행하는 것입니다. 즐거운 프로그래밍!
배열은 정적 메모리 할당이므로 정수 배열을 초기화하는 경우 :
int[] intArray = new int[15];
얼마나 많은 인덱스가 채워 졌는지에 관계없이 길이는 항상 15입니다.
또 다른 것은 정수 배열을 초기화하면 모든 인덱스가 "0"으로 채워집니다.
이 경우 arr.length는 할당 한 배열의 크기 인 10을 반환합니다. 논리적 크기는 고정 길이 배열이므로 여기에는 실제로 적용되지 않습니다.
어레이를 초기화하는 경우 :
int[] arr = new int[10];
Java는 10 개의 요소가있는 배열을 생성하고 이들 모두를 0으로 초기화합니다 .이 유형 및 기타 기본 유형의 초기 값에 대한 자세한 내용은 Java 언어 사양 을 참조하십시오.
Java에서 "실제"및 "논리"크기는 동일합니다. 런타임은 할당시 모든 배열 슬롯을 기본값으로 채 웁니다. 그래서, 당신 a
은 10을 포함합니다.
`
int 배열 [] = 새로운 int [3]; array.length;
그래서 여기에 우리는 3의 메모리 공간을 가진 배열을 만들었습니다.
0 번째 1 번째 2 번째 ...........> 인덱스 24 5 ...........> 번호
따라서이 배열의 크기는 3이지만 배열의 인덱스는 0 번째 인덱스로 시작하므로 배열의 인덱스는 최대 2입니다.
두 번째 문장의 출력은 배열의 길이가 3이므로 3이됩니다 ... 인덱스 값과 배열의 길이를 혼동하지 마십시오 ....
건배!
int[] arr = new int[10];
arr
int
크기 가있는 유형 배열입니다 10
. 10
요소 의 배열입니다 . 기본적으로 배열을 초기화하지 않으면 배열 요소에는 기본값이 포함됩니다. int 배열의 경우 기본값은 0
입니다.
length는 배열에 적용 할 수있는 속성입니다.
여기에 arr.length
줄 것 10
입니다.
그것은 당신이 그것을 선언했을 때 배열을 초기화 한 것과 같은 배열의 실제 크기를 포함합니다. Java에는 배열의 "논리적"크기에 대한 개념이 없습니다. 기본값 0은 수동으로 설정 한 값만큼 논리적입니다.
할당 된 크기 10을 포함합니다. 나머지 인덱스에는 기본값 인 0이 포함됩니다.
배열의 논리적 크기를 원하는 경우 배열의 모든 값을 탐색하여 0과 비교하여 확인할 수 있습니다. 값이 0이 아니고 논리적 크기 인 경우 값을 증가 시키십시오. 배열 크기가 고정되어 있기 때문에 내장 메서드가 없으므로 컬렉션을 살펴 봐야 할 수 있습니다.
그것은해야한다:
int a = arr.length;
괄호는 피해야합니다.
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
Java 배열은 실제로 크기가 고정되어 있으며 다른 답변은 .length가 실제로 예상 한 작업을 수행하지 않는 방법을 설명합니다. 나는 당신의 질문에 당신이 사용하고 싶은 것이 ArrayList이며, 이는 성장 및 축소가 가능한 배열임을 추가하고 싶습니다.
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
여기에서 .size () 메소드는 목록의 요소 수를 표시하며 항목을 추가 할 때이를 늘릴 수 있습니다.
"논리적 크기", 즉 배열의 인덱스를 의미한다면 간단히 int arrayLength = arr.length-1; 배열 인덱스는 "0"으로 시작하므로 논리 또는 "배열 인덱스"는 항상 실제 크기보다 "1"만큼 작습니다.
참고 URL : https://stackoverflow.com/questions/8755812/array-length-in-java
'developer tip' 카테고리의 다른 글
Excel VBA에서 "! ="에 해당하는 것은 무엇입니까? (0) | 2020.09.03 |
---|---|
Windows의 Maven 2에서 Java 힙 공간 설정 (0) | 2020.09.03 |
Windows에서 Python 스크립트를 실행하는 방법은 무엇입니까? (0) | 2020.09.03 |
방금 만든 하위 도메인의 cgi-bin 폴더를 삭제해야합니까? (0) | 2020.09.03 |
컬럼 형 데이터베이스 란 무엇입니까? (0) | 2020.09.02 |