IT

Java에서의 어레이 길이

itgroup 2023. 1. 31. 20:44
반응형

Java에서의 어레이 길이

아래와 같이 어레이를 선언했습니다.

int[] arr = new int[10];

그런 다음 어레이에 다음 값을 할당했습니다.

arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;

그런 다음 정수 변수를 선언하고 초기화했습니다.

int arrayLength = arr.length;

이것은 실제 크기를 찾는 데 도움이 됩니다만, 어레이의 논리 크기를 찾는 방법이 있습니까?

할당된 크기를 포함합니다.10. 되지 않은 인 "Default"가 0★★★★★★에int.

단......length에, 「」이 됩니다.arr.lengtharr.length().

그리고 신고된 크기인 10이 반환될 것입니다.명확하게 선언하지 않은 요소는 0으로 초기화됩니다.

A 해서 '어느 정도'를 요.length★★★★★★★★★★★★★★★★★★★★★★★★★.A.length 「」를 사용하지 .A.length()주로 문자열 관련 객체의 크기에 사용됩니다.

여기에 이미지 설명 입력

length 속성은 초기화 중에 항상 어레이에 할당된 총 공간을 표시합니다.

이러한 문제가 발생한 적이 있는 경우는, 간단하게 조작할 수 있습니다.해피프로그래밍!

어레이는 정적 메모리 할당이므로 정수 배열을 초기화할 경우:

int[] intArray = new int[15];

색인의 수에 관계없이 길이는 항상 15입니다.

또한 정수 배열을 초기화하면 모든 인덱스가 "0"으로 채워집니다.

이 경우 arr.length는 할당한 어레이 크기인 10을 반환합니다.논리 사이즈는 고정 길이 배열이기 때문에 실제로는 적용되지 않습니다.

어레이를 초기화할 때:

int[] arr = new int[10];

Java는 10개의 요소를 가진 배열을 만들고 이 모든 요소를 0으로 초기화합니다.이 유형 및 기타 원시 유형의 초기 값에 대한 자세한 내용은 Java 언어 사양을 참조하십시오.

Java에서는 "실제"와 "논리" 크기가 동일합니다.런타임은 할당 시 모든 어레이 슬롯을 기본값으로 채웁니다.당신의 래,, 신 so는a 1010이 포함되어 있습니다.

int[] arr = new int[10];

arr는 입니다.int가 「」인 .10입니다.10포함됩니다.기본적으로 어레이를 초기화하지 않으면 어레이 요소에는 기본값이 포함됩니다.은 int 레 、 음 、 음 、 음음 in in in int int int int 。0.

.length에 할 수 입니다.
(여기서)arr.length 주다10.

`

int array[]=new int[3]; array.length;

메모리 용량이 3인 어레이를 작성했습니다.실제는 이렇게 보인다

0번째 1번째 2번째 ............> 인덱스 2 4 5 ........> 번호

보시다시피 이 어레이의 크기는 3이지만 어레이의 인덱스는 최대 2입니다.어레이는 0번째 인덱스로 시작되기 때문입니다.

두 번째 문'의 출력은 배열 길이가 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

어레이를 선언했을 때의 초기화와 같이 어레이의 실제 사이즈가 포함됩니다.Java에는 어레이의 "논리적인" 크기에 대한 개념이 없습니다.기본값 0은 수동으로 설정한 값만큼 논리적입니다.

할당된 크기 10이 포함됩니다.나머지 인덱스에는 기본값 0이 포함됩니다.

어레이의 논리적 크기를 원하는 경우 어레이의 모든 값을 이동하여 0과 비교하여 확인할 수 있습니다.값이 0이 아닌 논리 크기일 경우 값을 증가시킵니다.어레이 사이즈는 고정되어 있기 때문에 내장된 메서드는 없습니다.수집 내용을 확인해야 할 수도 있습니다.

다음 중 하나여야 합니다.

int a = arr.length;

괄호는 피해야 합니다.

Java 어레이는 실제로 크기가 고정되어 있습니다.다른 답변은 .length가 예상대로 작동하지 않는 이유를 설명하고 있습니다.질문하신 내용에 따라 Array List(확장 및 축소 가능한 어레이 목록)를 사용할 수 있습니다.

https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

여기서 .size() 메서드는 목록에 있는 요소의 수를 표시합니다.이 수를 추가할 때마다 늘릴 수 있습니다.

어레이 색인인 "논리 크기"를 의미하는 경우 단순히 int arrayLength = arr.length-1을 입력합니다. 어레이 색인이 "0"으로 시작되므로 논리 또는 "어레이 색인"은 항상 실제 크기보다 "1" 작습니다.

배열은 컴파일 시에 Java로 메모리가 할당되므로 정적이며 명시적으로 설정 또는 수정되지 않은 요소는 기본값으로 설정됩니다.이와 같은 코드를 사용할 수 있습니다.단, 디폴트 값은 카운트되지 않기 때문에 권장되지 않습니다.또, 명시적으로 초기화를 실시해도, 회선의 하부에 버그가 발생할 가능성이 있습니다.다른 사람이 말했듯이 실제 크기를 찾을 때는 ".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;
}

덧붙이자면

Java에서는 모든 배열이 int 단위로만 인덱싱되고 선언됩니다.어레이의 크기입니다.must be specified by an int value and not long or short. 0부터 2147483646까지의 모든 어레이 인덱스는 다음과 같습니다.요소는 최대 2147483647까지 저장할 수 있습니다.어레이에 긴(큰) 요소를 저장하려고 하면 성능 문제가 발생합니다.성능 문제를 해결한 경우 Java 컬렉션 프레임워크로 이동해야 합니다.

언급URL : https://stackoverflow.com/questions/8755812/array-length-in-java

반응형