728x90

 

ch5-4 배열의 길이

배열의 길이

배열이름.length - 배열의 길이(int형 상수)

int[] arr = new int[5];  // 길이가 5인 int배열
int tmp = arr.length;    // arr.lenght의 값은 5이고 tmp에 5가 저장된다

 

배열은 한번 생성하면 그 길이를 바꿀 수 없다

why?

int[5]가 4byte인 int가 5개이므로 4x5 =20 byte

여기서 int[5]를 10칸인 int[10]으로 바꾸고 싶다면 4x10=40이므로 두배의 공간이 필요하게 되고 배열은 연속해서 저장공간을 만든다. 새로 만들려면 연속된 공간 저장 확보가 어렵다면 떨어진 곳에 만들어야하는데 자바는 크기를 못 늘리게하고 필요하면 다른 곳으로 옮기게 규칙을 정해놓음

 

 

길이가 부족할 때는?

길이를 늘릴 수 없기에 새로운 걸 큰 걸 만들고 기존의 내용새 배열에 복사

for (int i=0; i < score.length;i++) // 조건식 변경 불필요
		System.out.println(score[i];

 

 


 

ch5-5 배열의 초기화

배열의 초기화

배열의 각 요소에 처음으로 값저장하는 것

int[[ score = new int[5]; // 길이가 5인 int형 배열 생성
score[0] = 50; // ← 배열 초기화
score[1] = 60; // ← 배열 초기화
score[2] = 70; // ← 배열 초기화
score[3] = 80; // ← 배열 초기화
score[4] = 90; // ← 배열 초기화

배열은 기본적으로 인트형으로 자동 초기화

 

반복문으로 초기화 가능

for(int i=0; i<score.length; i++)
	score[i] = i * 10 + 50;

// 결과값으로 
score[0] = 50;
score[1] = 60; 
score[2] = 70; 
score[3] = 80; 
score[4] = 90; 

 

 

간단 초기화 방법

  1. int[] score = new int[] {50, 60 , 70, 80, 90};
  2. int[] score = {50, 60 , 70, 80, 90}; // new int[] 생략가능

대부분 2번으로 많이 사용

 

주의사항

// 아래의 코드는 2)과 같은 코드이나 따로쓰면 error
int[] score;
score = {50, 60 , 70, 80, 90}; // error : new int[] 생략 불가
score = new int[]{50, 60 , 70, 80, 90}; // 가능

 

728x90
반응형

+ Recent posts