발표 내용
- C에서의 배열은 선언과 생성이 동시에 되나, Java에서는 선언과 생성이 다름.
int[] arr; : 선언
arr = new int[5]; : 생성
int[] arr = new int[5]; : 선언과 생성, 동시에.
자동으로 0으로 초기화
int[] arr = {1, 2, 3, 4, 5}; 이런 형식도 가능.
단, 이 경우에는 선언과 생성을 동시에 할 경우에만.
먼저 선언을 했을 경우에는 (int[] arr;) arr = new int[]{1, 2, 3, 4, 5};
int[] arr;
arr = new int[3];
arr = new int[5];
→ 문제없음.
- 함수의 return형이 배열인 것도 가능.
- public static int[] function() {...}
- arr.length : 배열의 길이값을 return하는 메서드
선언 : int[][] arr;
생성 : arr = new int[3][]; → 열의 길이를 비워둘 수 있음
arr[0] = new int[3];
arr[1] = new int[2]; → 각 행의 배열 길이가 모두 달라도 됨
//다차원 배열에서의 length 메서드
arr.length == 3
arr[0].length == 3
arr[1].length == 2
int[] arr = {1, 2, 3, 4, 5};
for (int e : arr) {
System.out.print(e);
}
→ 출력값 : 12345
for (int e : arr) {
e++;
System.out.print(e);
}
→ 출력값 : 23456
//e는 index가 아니라, arr[index]의 값을 잠깐 받아놓는 역할.
int[] arr1 = {1, 2, 3};
int[] arr2 = {11, 12, 13, 14};
System.arraycopy (arr1, 0, arr2, 1, 2);
→ arr2 = {11, 1, 2, 14};
// arr1[0]부터 2개의 값을, arr2[1]부터 2개의 값으로 복사.
- main함수의 String[] args ??
- command line에서 문자열들을 입력받을 수 있음.
java program abc 123
args[0] == abc
args[1] == 123