Java

ch. 5 참조타입 - 배열 타입

Hvvvi 2021. 3. 17. 19:26
728x90

5.6 배열 타입

  • 변수는 한 개의 데이터만 저장할 수 있음
  • 저장할 데이터가 많아지면 그때마다 모두 선언해야함
  • 배열은 인덱스 번호가 붙은 변수들의 집합
  • 인덱스와 인덱스에 대응하는 데이터들로 이루어진 구조
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import java.util.Arrays;
 
public class 배열연습 {
//배열 : 이름은 하나, 같은 종류의 값을 여러개 저장하기위한 자료구조
    // arge: 명령행 매개변수
    // cmd=명령행
    public static void main(String[] args) {
        // method3();
        System.out.println(args.length + "개의 파라미터");
        System.out.println(args[0]); // 100
        System.out.println(args[1]); // 200
        System.out.println(args[0+ args[1]); // 100200
        // 문자를 숫자로 변환
        // String class = 기능(메서드) + 속성(변수)
        // (int) args[]; 불가
        // Integer class
        int a = Integer.parseInt(args[0]);
        int b = Integer.parseInt(args[1]);
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a / b);
        System.out.println(a * b);
        System.out.println(a % b);
 
    }
 
    private static void method3() {
        // 배열생상시 갯수는 필수
        // 자동초기화
        // 초기화하면서 생성시는 갯수사용불가
        String[] arr = new String[5];
        // arr = new String {"a","s","d","f","g1"};
        String[] arr2 = { "a""s""d""f""g1" };
 
        // 확장 for, 향상된 for
        for (String s : arr2) {
            System.out.println(s);
        }
 
    }
 
    private static void method2() {
        int[] arr;
        arr = new int[10];
        for (int i = 0; i < arr.length; i++) {
            System.out.println(i + "번째" + arr[i]);
        }
 
        System.out.println(Arrays.toString(arr));
 
        // 기본형이 아니면 null로 초기화
        String[] arr2 = new String[5];
        System.out.println(Arrays.toString(arr2));
 
        // 선언+생성+초기화
        int[] arr3 = new int[] { 10099885010 };
        int[] arr4 = { 10099885010 };
 
        System.out.println(Arrays.toString(arr3));
        System.out.println(Arrays.toString(arr4));
 
        int total = 0;
        for (int i = 0; i < arr3.length; i++) {
 
        }
 
    }
 
    private static void method1() {
        // 1. 배열변수선언
        int[] score1 = null;
        double score2[];
        boolean[] pass;
        char[] aa;
 
        // 2. 배열생성 heap영역에 만들어지는 객체는 자동초기화
        score1 = new int[30]; // 0
        score2 = new double[5]; // 0.0
        pass = new boolean[30]; // false
 
        // 3. 배열사용
        // index는 0부터시작 30개
        System.out.println(score1.length);
        System.out.println(score2.length);
        System.out.println(score1[0]);
        System.out.println(score2[0]);
        System.out.println(pass[29]);
 
        score1[1= 100;
        score2[1= 99;
 
    }
 
}
cs
  • 다차원배열
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import java.util.Arrays;
 
public class 다차원배열 {
 
    public static void main(String[] args) {
        method3();
 
    }
 
    // 값의 전달
    private static void method7() {
        int a = 100;
        System.out.println("be" + a);
        method(a);
        System.out.println("af" + a);
 
    }
 
    private static void method(int a) {
        a = 300;
 
    }
 
    // 주소의 전달
    private static void method5() {
        int[] arr1 = new int[] { 10099708895 };
        System.out.println(Arrays.toString(arr1));
        method6(arr1);
        System.out.println(Arrays.toString(arr1));
    }
 
    private static void method6(int[] scores) {
        scores[0= 300;
        System.out.println(Arrays.toString(scores));
 
    }
 
    // 배열복사//배열복사//배열복사//배열복사
    private static void method4() {
        int[] arr1 = new int[] { 10099708895 };
        int[] arr2 = new int[arr1.length];
        int[] arr3 = new int[arr1.length];
        System.arraycopy(arr1, 0, arr3, 0, arr1.length);
 
        int[] arr4 = Arrays.copyOf(arr1, arr1.length);
 
        for (int i = 0; i < arr1.length; i++) {
            arr2[i] = arr1[i];
        }
        arr1[0= 200;
        System.out.println(Arrays.toString(arr1));
        System.out.println(Arrays.toString(arr2));
        System.out.println(Arrays.toString(arr3));
        System.out.println(Arrays.toString(arr4));
 
    }
 
    private static void method3() {
        String[][] arr;
        arr = new String[][] { { "s""a""d" }, { "v""q" } };
        for (int row = 0; row < arr.length; row++) {
            for (int col = 0; col < arr[row].length; col++) {
                System.out.print(arr[row][col] + "\t");
 
            }
            System.out.println();
        }
        // 주소룰 넣는다 (같은주소를 참조)??
        String[][] arr2 = arr;
        arr2[0][0= "java";
        System.out.println(arr2[0][0]);
        System.out.println(arr[0][0]);
 
    }
 
    private static void method2() {
        String[][] arr;
        arr = new String[3][]; // 앞 배열갯수는 필수
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
            arr[i] = new String[i + 4];
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
        }
        System.out.println();
 
    }
 
    private static void method1() {
        int[][] arr;
        int arr2[][];
        int[] arr3[];
 
        arr = new int[2][5];
        arr2 = new int[2][];
        arr2[0= new int[3];
        arr2[1= new int[4];
 
        for (int row = 0; row < arr.length; row++) {
            for (int col = 0; col < arr[row].length; col++) {
                System.out.print(arr[row][col] + "");
            }
            System.out.println();
        }
        /*
         * System.out.println(arr[0][0]); System.out.println(arr[0][1]);
         * System.out.println(arr[0][2]); System.out.println(arr[1][0]);
         * System.out.println(arr[1][1]); System.out.println(arr[1][2]);
         */
 
    }
 
}
cs
728x90