developer tip

자바의 배열 길이

optionbox 2020. 9. 3. 08:20
반응형

자바의 배열 길이


아래와 같이 배열을 선언했습니다.

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];

arrint크기 가있는 유형 배열입니다 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

반응형