2020년 11월 12일 9시 ~ 15시 30분 zoom으로 수업 진행
배열 복사
- 얕은 복사
객체의 주소 값만 가져와 참조형 변수에 저장하고 하나의 객체를 두 변수가 참조하는 것
- 깊은 복사
새로운 배열 객체를 생성하여 기존 배열의 데이터를 복사하는 것
2차원 배열
자료형이 같은 1차원 배열의 묶음으로 배열 안에 다른 배열이 존재한다
2차원 배열은 할당된 공간마다 인덱스 번호 두개 부여 (앞 번호는 행, 뒷 번호는 열)
2차원 배열 선언과 할당
- 배열 선언
자료형[][] 배열명;
자료형 배열명[][];
자료형[] 배열명[];
- 배열 할당
자료형[][] 배열명 = new 자료형[행크기][열크기];
자료형 배열명[][] = new 자료형[행크기][열크기];
자료형[] 배열명[] = new 자료형[행크기][열크기];
ex)
int[][] arr = new int[3][4];
int arr[][] = new int[3][4];
package com.test01;
public class Test { public static void main(String[] args) { test1();
} public static void test1() {
//선언
int [][] iarr1; int iarr2[][];
//할당
iarr1 = new int [3][5];
//이런식으로도 초기화가능하다. iarr2 = new int [3][]; iarr2[0] = new int[5]; iarr2[1] = new int[5]; iarr2[2] = new int[3];
// iarr2 = new int[][5]; // 몇줄인지 모르는 상태에서는 초기화가 불가능
for(int i=0; i<3; i++ ) { for(int j=0; j<5; j++) { System.out.print(iarr2[i][j]+ " ");
} System.out.println(); }
} } |
package com.test01;
public class DeArrayTest01 {
public static void main(String[] args) { // TODO Auto-generated method stub test1(); System.out.println(" --- "); int[][] arr = new int[3][5]; int val = 1; for (int i = 0; i < arr.length; ++i) { for (int j = 0; j < arr[i].length; ++j) { arr[i][j] = val++; } } new DeArrayTest01().prn(arr); System.out.println("\n --- ");
test2();
}
public static void test1() {
int[][] arr1; int arr2[][];
arr1 = new int[3][5]; arr2 = new int[3][];// new int[][5];능 안댐 arr2[0] = new int[5]; arr2[1] = new int[5]; arr2[2] = new int[3];
for (int i = 0; i < 3; ++i) { for (int j = 0; j < 5; ++j) { System.out.print(arr1[i][j] + " "); } System.out.println(""); }
/* * for(int i=0; i<3; ++i) { for(int j=0; j<5; ++j) { * System.out.print(arr2[i][j]+" "); } System.out.println(""); * * //java.lang.ArrayIndexOutOfBoundsException 에러나는이윻 * //2행의 마지막 열이 3칸이 끝인데 출력 범위가 * 5라서 } */
}
// 이차원 배열을 전달받아 출력하는 메소드 public void prn(int arr[][]) {
for (int i = 0; i < arr.length; ++i) { for (int j = 0; j < arr[i].length; ++j) { System.out.print("\t" + arr[i][j]); } System.out.println(""); }
}
public static void test2() { // 가변 int[][] arr = new int[3][];
// new DeArrayTest01().prn(arr); java.lang.NullPointerException 에러뜹니다 // 우리가 만든 arr 배열은 행만 만들어졌는데 열을 만들어주지않아서 주소를 찾을 수 없다는 에러가 뜬다
arr[0] = new int[5]; arr[1] = new int[3]; arr[2] = new int[5];
int val = 1;
for (int i = 0; i < arr.length; ++i) { for (int j = 0; j < arr[i].length; ++j) { arr[i][j] = val++; } }
// 내용 출력 new DeArrayTest01().prn(arr);
int[][] arr2 = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; System.out.println(""); new DeArrayTest01().prn(arr2);
}
} |
'기록 > 자바_국비' 카테고리의 다른 글
[배운 내용 정리] 1116 자바 국비교육 (0) | 2020.11.17 |
---|---|
[배운 내용 정리] 1113 자바 국비교육 (0) | 2020.11.14 |
[배운 내용 정리] 1111 자바 국비교육 (0) | 2020.11.14 |
[배운 내용 정리] 1110 자바 국비교육 (0) | 2020.11.10 |
[배운 내용 정리] 1109 자바 국비교육 (0) | 2020.11.10 |