Java] Array
배열은 Fix Length
이기에 길이를 크게 해서 값을 더하고 싶은 경우
큰 길이의 배열을 선언하고 이전의 값들을 가지고 와서 넣어주고 추가하면 된다.
배열의 선언과 초기화
1차 배열
1 | int[] arr1 = new int[3]; |
2차 배열
1 | int[][] arr = new int[3][]; |
2차열 배열에서 가로의 길이가 정해지지 않았다.
가로의 길이는 위와 같이 선언/초기화 후에 정해줘도 된다.
1 | arr[0] = new int[3]; |
이렇게 할 수 있으며, 가로의 길이가 일정하지 않은 배열을 Ragged Array(가변 배열)라고 한다.
Array Copy
얕은 복사
1 | System.arraycopy(원본, 원본 어디서부터, 복사 담길 객체, 시작점, 길이); |
깊은 복사
for문을 이용하여 값을 하나하나 넣어주면 된다.
For-each문
1 | for(int e : arr) { |
for-each문은 파이썬에서
1 | num = range(1,11) |
이렇게 쓴 것과 유사하다.
인덱스 접근이 어렵다는 단점이 있다.
Main method
1 | public static void main(String[] args) { } |
String[] args
는 배열임을 알 수 있다.
args는 실행을 하면서 뒤에 붙는 문자열이 띄어쓰기를 기준으로 붙는다.
1 | java Test AAA BBB CCC |
Test 클래스를 실행하면서 뒤에 “AAA BBB CCC” 라는 문자열을 넣게 된다면
args[0] = “AAA”, args[1] = “BBB”, args[2] = “CCC” 이렇게 args는 값을 가지고 있게 된다.
Problem
다음은 배열을 선언하거나 초기화한 것이다. 잘못된 것을 고르고 그 이유를 설명하시오.
- int[] arr[];
- int[] arr = {1,2,3, };
- int[] arr = new int[5];
- int[] arr = new int[5]{1,2,3,4,5};
- int arr[5];
- int[] arr[] = new int[3] [];
1 | int[] arr = new int[]{1,2,3,4,5}; //는 할 수 있다. |