[]
변수;int[] intArray; // 정수 배열 long[] longArray; double[] doubleArray; // 실수 배열 char[] charArray; // 문자 배열 String[] stringArray; // 문자열 배열
[]
;int intArray[]; // 정수 배열 long longArray[]; double doubleArray[]; // 실수 배열 char charArray[]; // 문자 배열 String stringArray[]; // 문자열 배열
int[] intArray = new int[3]; // {0, 0, 0} boolean[] boolArray = new boolean[3]; // {false, false, false} String[] stringArray = new String[3]; // {"", "", ""}
// 배열 선언 먼저! -> 나중에 초기화 int[] intArray2; intArray2 = new int[3]; // {0, 0, 0}
// 생성한 배열을 '순회' -> 배열의 값을 하나씩 뽑아서 조회한다. // (1) 단건 조회 int[] intArray = new int[3]; // {0, 0, 0} System.out.println(intArray[1]); // 0 출력
int[] intArray2; intArray2 = new int[3]; // {0, 0, 0} for (int i = 0; i < intArray2.length; i++) { // length : 길이를 구하는 메서드 System.out.println(intArray2[i]); } // 0, 0, 0 출력
int[] intArray = {1, 2, 3, 4, 5}; String[] stringArray = {"a", "b", "c", "d"};
for (int i = 0; i < intArray.length; i++) { intArray[i] = i;
int[] intArray = {1, 2, 3, 4, 5}; for (int i = 0; i < intArray.length; i++) { intArray[i] = i; } // 다건 출력 for (int i = 0; i < intArray.length; i++) { System.out.println(intArray[i]); // 0,1,2,3,4 출력
int[] intArr = {10, 20, 30, 40, 50}; for(int item : intArr) { System.out.println(item); // 10,20,30,40,50 출력 }
Arrays.fill(intArr, 1); //배열의 모든 값을 1로 초기화 for(int item : intArr) { System.out.println(item); // 1,1,1,1,1 출력 }
중괄호{}
를 사용해서 초기화
반복문 for
문을 사용해서 초기화 (또는 향상된 for문)
Arrays.fill
메소드를 사용해서 초기화
int[] a = { 1, 2, 3, 4 }; int[] b = a; // 얕은 복사 // a와 b는 똑같은 별도 영역에 주소를 바라보고 있음 b[0] = 3; // b 배열의 0번째 순번값을 3으로 수정했습니다. (1 -> 3) System.out.println(a[0]); // 출력 3 <- a 배열의 0번째 순번값도 3으로 조회됩니다.
새로운 배열을 똑같이 만들고 싶을때 사용
실제 값을 가지고 있는 배열의 기본형 값을 꺼내서 복사해주면 됨
반복문 for 문 을 통해서 하나씩 꺼내서 복사해주는 방법과 여러 메서드를 사용하는 방법이 있음
int[] a = { 1, 2, 3, 4 }; int[] b = new int[a.length]; // a의 길이만큼 가지는 새로운 배열 // 0으로 다 초기화 for (int i = 0; i < a.length; i++) { b[i] = a[i]; // 깊은 복사 // 주소값이랑 상관없이 b라는 배열은 a가 가지고 있는 요소들로 이루어진 별도의 배열이 생성이 된다. } b[0] = 3; // b 배열의 0번째 순번값을 3으로 수정했습니다. (1 -> 3) System.out.println(a[0]); // 출력 1 <- 깊은 복사를 했기때문에 a 배열은 그대로 입니다.
()
메서드int[] a = { 1, 2, 3, 4 }; int[] b = a.clone(); // 가장 간단한 방법입니다. // 하지만, clone() 메서드는 2차원이상 배열에서는 얕은 복사로 동작합니다!!
a.clone()
을 하면 a를 완전히 복사 하지만 주소는 다른 걸 가지고 옴
즉, b 배열은 다른 주소값을 갖는 배열을 리턴 받을 수 있음
()
메서드import java.util.Arrays; public class Main { public static void main(String[] args) { int[] a = { 1, 2, 3, 4 }; int[] b = Arrays.copyOf(a, a.length); // 배열과 함께 length값도 같이 넣어줍니다. => 새로운 배열을 리턴해줌 => a와 b는 완전히 다른 종류의 배열이 됨 a[3] = 0; System.out.println(a[3]); // 0 출력 System.out.println(b[3]); // 4 출력 } }