배열을 사용하는 이유
- 동일한 타입의 변수를 여러 개 사용한다면?
- 변수의 수 증가
- 코드의 길이 증가
- 반복문 적용 불가
- 변수의 수가 동적으로 결정될 경우, 사용 불가
- 배열(Array)로 동일 타입 변수 묶어서 사용하기
- 배열: 동일한 타입의 데이터 0개 이상을 하나의 연속된 메모리 공간에서 관리하는 것
- 요소에 접근하는 속도가 매우 빠름
- 한번 생성하면 크기 변경 불가
배열의 생성과 초기화
- 생성
- new keyword와 함께 저장하려는 데이터 타입 및 크기 지정: new data_type[length]
- new int[3]; // int 타입의 자료 3개를 저장할 수 있는 배열을 메모리에 생성
- points = new int[3]; // 생성된 배열을 points라는 변수에 할당
- points는 메모리에 있는 배열을 가리키는 reference 타입 변수
- 배열 요소 초기화
- 배열의 생성과 동시에 저장 대상 자료형에 대한 기본값으로 default 초기화 진행
String arg="ABCD";
char[] chars = new char[org.length()];
for(int i=0; i<chars.length; i++){
chars[i] = org.charAt(i);
}
for(int i=0; i<chars.length; i++{
System.out.println(chars[i]);
}
//API 사용한 경우
chars = org.toCharArray();
for(int i=0; i<chars.length; i++){
System.out.println(chars[i]);
}
String org="123456789";
char[] nums = org.toCharArray();
int sum=0;
for(int i=0; i<nums.length; i++){
sum += nums[i] - '0';
}
System.out.println("sum: %d%n", sum);
Array 만들기
- 생성과 동시에 할당한 값으로 초기화
int[] b = new int[]{1, 2, 3, 4, 5};
int[] c = {1, 2, 3, 4, 5};
- 선언과 생성을 따로 처리할 경우 초기화 주의
// 컴파일 오류
int[] points;
points = {1, 2, 3, 4, 5};
// 선언할 때는 배열의 크기를 알 수 없을 때
int[] points;
points = new int[]{1, 2, 3, 4, 5};
- {}를 통한 배열 생성은 변수 선언과 동시에 진행되어야 함
- 배열은 최초 메모리 할당 이후, 변경 불가
- 개별 요소는 다른 값으로 변경이 가능하나, 요소를 추가하거나 삭제할 수는 없음.
api 제공하는 배열 복사 method
int[] temp = new int[]{1, 2, 3, 4, 5};
int[] temp1 = Arrays.copyOf(temp, 5);
int[] temp2 = System.arraycopy(temp, 0, temp2, 0, temp.length);