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[] { 100, 99, 88, 50, 10 };
int[] arr4 = { 100, 99, 88, 50, 10 };
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[] { 100, 99, 70, 88, 95 };
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[] { 100, 99, 70, 88, 95 };
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