๋ฐฐ์ด (Array)
๐ก ๊ฐ์ ํ์ ์ ์ฌ๋ฌ ๋ณ์๋ฅผ ํ๋์ ๋ฌถ์์ผ๋ก ๋ค๋ฃจ๋ ๊ฒ
๐ก String[] classGroup = { "๊น์ฒ ์", "๊น์ํฌ", "ํ์ํฌ",...}
โก๏ธ classGroup์ด๋ผ๋ ๋ณ์์ ๋ฌธ์์ด๋ก ๋ ๋ฐฐ์ด์ด ๋ด๊ธด๋ค.
โ
1) ๋ฐฐ์ด์ ์ ์ธ๊ณผ ์์ฑ
์ ์ธ๋ฐฉ๋ฒ | ์ ์ธ ์ |
ํ์ [] ๋ณ์์ด๋ฆ; | int[] score;
String[] name;
|
ํ์ ๋ณ์์ด๋ฆ[]; | int score[];
String name[];
|
a. ๋ฐฐ์ด์ ์์ฑ
ํ์ [] ๋ณ์์ด๋ฆ; // ๋ฐฐ์ด์ ์ ์ธ (๋ฐฐ์ด์ ๋ค๋ฃจ๊ธฐ ์ํ ์ฐธ์กฐ๋ณ์ ์ ์ธ)
๋ณ์์ด๋ฆ = new ํ์ [๊ธธ์ด]; // ๋ฐฐ์ด์ ์์ฑ (์ค์ ์ ์ฅ๊ณต๊ฐ์ ์์ฑ)
๐ ๊ฐ ๋ฐฐ์ด์์๋ ์๋์ ์ผ๋ก int์ ๊ธฐ๋ณธ๊ฐ(default)์ธ 0์ผ๋ก ์ด๊ธฐํ
โ
2) ๋ฐฐ์ด์ ๊ธธ์ด์ ์ธ๋ฑ์ค
๐ ์์ฑ๋ ๋ฐฐ์ด์ ๊ฐ ์ ์ฅ๊ณต๊ฐ์ '๋ฐฐ์ด์ ์์(element)'๋ผ๊ณ ํ๋ฉฐ, '๋ฐฐ์ด์ด๋ฆ[์ธ๋ฑ์ค]'์ ํ์์ผ๋ก ๋ฐฐ์ด์ ์์์ ์ ๊ทผํ๋ค.
๐ ์ธ๋ฑ์ค(index)๋ ๋ฐฐ์ด์ ์์๋ง๋ค ๋ถ์ฌ์ง ์ผ๋ จ๋ฒํธ
โก๏ธ ์ธ๋ฑ์ค์ ๋ฒ์๋ 0๋ถํฐ '๋ฐฐ์ด๊ธธ์ด -1'๊น์ง
โก๏ธ ์ธ๋ฑ์ค๋ก ์์ ๋์ ๋ณ์๋ ์์๋ ์ฌ์ฉํ ์ ์๋ค
โscore[0] = 0 ;
score[1] = 10;
score[2] = 20;
score[3] = 30;
score[4] = 40;
โ* [0],[1],[2],[3],.. : '์ธ๋ฑ์ค'(์์น๋ฅผ ์๋ ค์ฃผ๋ ์๋ฆฌ)
for (int i = 0; i < 5; i++) {
score[i] = i * 10;
}
a. ๋ฐฐ์ด์ ๊ธธ์ด
· ๋ฐฐ์ด์ ๊ธธ์ด๋ ์์ ์ ์(0๋ ํฌํจ) ์ด์ด์ผ ํ๋ฉฐ ์ต๋๊ฐ์ int ํ์ ์ ์ต๋๊ฐ, ์ฝ 20์ต์ด๋ค
b. ๋ฐฐ์ด์ด๋ฆ.length
· ๋ฐฐ์ด์ ํ๋ฒ ์์ฑํ๋ฉด ๊ธธ์ด๋ฅผ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์, ์ด๋ฏธ ์์ฑ๋ ๋ฐฐ์ด์ ๊ธธ์ด๋ ๋ณํ์ง ์๋๋ค.
· '๋ฐฐ์ด์ด๋ฆ.length'๋ ์์๋ค.
· for๋ฌธ์ ์กฐ๊ฑด์์ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์ง์ ์ ์ด์ฃผ๋ ๊ฒ๋ณด๋ค. '๋ฐฐ์ด์ด๋ฆ.length'๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
c. ๋ฐฐ์ด์ ๊ธธ์ด ๋ณ๊ฒฝํ๊ธฐ
1) ๋ ํฐ ๋ฐฐ์ด์ ์๋ก ์์ฑ
2) ๊ธฐ์กด ๋ฐฐ์ด์ ๋ด์ฉ์ ์๋ก์ด ๋ฐฐ์ด์ ๋ณต์ฌ
โ
3) ๋ฐฐ์ด์ ์ด๊ธฐํ
๐ ๋ฐฐ์ด์ ์์ฑ๊ณผ ๋์์ ์๋์ ์ผ๋ก ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํ ๋จ
โก๏ธ ์ํ๋ ๊ฐ์ ์ ์ฅํ๋ ค๋ฉด ๊ฐ ์์๋ง๋ค ๊ฐ์ ์ง์ ํด์ค์ผ ํจ
โก๏ธ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ํฐ ๊ฒฝ์ฐ์๋ ์์ ํ๋ํ๋์ ๊ฐ์ ์ง์ ํ๊ธฐ ๋ณด๋ค๋ for๋ฌธ์ ์ฌ์ฉ
int score = new int [] { a , b, c, d, e }; // ๋ฐฐ์ด์ ์์ฑ๊ณผ ์ด๊ธฐํ๋ฅผ ๋์์
int score = { a , b, c, d, e }; // new int[] ๋ฅผ ์๋ตํ ์ ์์
(๋จ, ๋ฐฐ์ด์ ์ ์ธ๊ณผ ์์ฑ์ ๋ฐ๋กํ๋ ๊ฒฝ์ฐ์๋ ์๋ต ๋ถ๊ฐ)
int[] score = new int[0]; // ๊ธธ์ด๊ฐ 0์ธ ๋ฐฐ์ด
int[] score = new int[]{}; // ๊ธธ์ด๊ฐ 0์ธ ๋ฐฐ์ด
int[] score = {}; // ๊ธธ์ด๊ฐ 0์ธ ๋ฐฐ์ด, new int [ ] ๊ฐ ์๋ต๋จ
โ
4) ๋ฐฐ์ด์ ์ถ๋ ฅ
๐ for๋ฌธ ์ฌ์ฉ ๋๋ Arrays.toString(๋ฐฐ์ด์ด๋ฆ) ๋ฉ์๋ ์ฌ์ฉ
→ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ '[์ฒซ๋ฒ์งธ ์์, ๋๋ฒ์งธ ์์, ...]' ์ ๊ฐ์ ํ์์ ๋ฌธ์์ด๋ก ๋ง๋ค์ด์ ๋ฐํ
๐ ์๋ ๋ณ์ iArr ๊ฐ์ ๋ฐ๋ก ์ถ๋ ฅํ๋ฉด 'ํ์ @ ์ฃผ์' ํ์์ผ๋ก ์ถ๋ ฅ๋๋ค.
→์ฐธ์กฐ๋ณ์๋ heap ์์ญ์, ์ง์ญ๋ณ์&๋งค๊ฐ๋ณ์๋ stack ์์ญ์ ์ ์ฅ ๋จ.
-> ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฐธ์กฐ ๋ณ์๋ ์ฃผ์๋ก ์ถ๋ ฅ๋จ.
int[] iArr = {100, 95, 80, 70, 60};
for(int i = 0; i < iArr.length; i++) {
System.out.println(iArr[i] + ",");
}
System.out.println();
System.out.prinln(iArr); // [I@7344699f
System.out.prinln(Arrays.toString(iArr)); // [100, 95, 80, 70, 60]
โ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ
public class Exam01 {
public static void main(String[] args) {
int[] student; // ํ๊ณต๊ฐ์ ๋ฐฐ์ด์ ์ฃผ์๊ฐ ์ ์ฅ๋ ๋ณ์ ์์ฑ.
student = new int[3]; // ํ๊ณต๊ฐ์ ๊ธธ์ด๊ฐ 3์ธ ๋ฐฐ์ด ์์ฑ(์ฐ์๋ ์ฃผ์๋ฅผ ๊ฐ์ง)ํ๊ณ ์ฃผ์๋ฅผ ๋ฐํ.
// ์ ์ ๋ฐฐ์ด์ด ์์ฑ์ด ๋๊ณ , ์ด๊ธฐํ๋ฅผ ํ์ง ์์ผ๋ฉด ์๋์ผ๋ก 0์ผ๋ก ์ด๊ธฐํ.
System.out.println("ํ์ฌ ์๋์ผ๋ก ์ด๊ธฐํ๋ ๊ฐ: " + student[0]); // 0
// ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋ณ ์์์ ๊ฐ์ ๋ณ๊ฒฝ.
student[0] = 30; // ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ 30์ ์ ์ฅ
student[1] = 20; // ๋ฐฐ์ด์ ๋ ๋ฒ์งธ ์์์ 20์ ์ ์ฅ
student[2] = 10; // ๋ฐฐ์ด์ ์ธ ๋ฒ์งธ ์์์ 10์ ์ ์ฅ
System.out.println("ํ์ฌ ์ฒซ ๋ฒ์งธ ์์์ ๊ฐ: " + student[0]); // 30
}
}
โ
๋ฐฐ์ด ์ถ๋ ฅ 3๊ฐ์ง ๋ฐฉ๋ฒ
๐ for๋ฌธ ์ถ๋ ฅ | foreach๋ฌธ ์ถ๋ ฅ | Array.toString() ์ถ๋ ฅ
public class Exam02 {
public static void main(String[] args) {
// for๋ฌธ์ผ๋ก ๋ฐฐ์ด ์ด๊ธฐํ
int[] c = new int[10];
for(int i = 0; i < c.length; i++) {
c[i] = i;
}
// ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ 3๊ฐ์ง.
// for๋ฌธ์ ์ด์ฉํ ์ถ๋ ฅ
System.out.println(c.length);
for (int i = 0; i < c.length; i++) {
System.out.println(c[i]);
}
// foreach ๋ฌธ์ ์ด์ฉํ ์ถ๋ ฅ
System.out.println();
for(int d: c) { // (๋ฐฐ์ด์ ์์ : ๋ฐฐ์ด).
// ๋ฐ๋ณต์์ ๋ณ์ d์ ์์๋๋ก ์์๊ฐ ๋ค์ด๊ฐ. ์๋ฐ์คํฌ๋ฆฝํธ์ for of๋ฌธ๊ณผ ์ ์ฌ.
System.out.println(d);
}
// Arrays.toString ๋ฉ์๋ ์ฌ์ฉ. ๋ฌธ์์ด๋ก ์ถ๋ ฅ.
System.out.println();
System.out.println(Arrays.toString(c));
}
}
๋ฐฐ์ด ์ฌ์ฉ X VS. ๋ฐฐ์ด ์ฌ์ฉ O
โ๏ธ ํ์ 5๋ช ์ ์ฑ์ ์ด์ ๊ณผ ํ๊ท
public class MyArray_01 {
public static void main(String[] args) {
// 1. ๋ฐฐ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ
int score_001 = 95;
int score_002 = 76;
int score_003 = 67;
int score_004 = 56;
int score_005 = 87;
int total = score_001 + score_002 + score_003 + score_004 + score_005;
double avg = (double)total / 5;
System.out.println("์ด์ ์ " + total + "์ ์ด๊ณ , ํ๊ท ์ " + avg + "์
๋๋ค.");
// 2. ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
// ์ด์ ์ for๋ฌธ์ ์ด์ฉํด์ ๊ตฌํ ์ ์๊ณ , ๋ฐฐ์ด์ ๊ฐฏ์๊ฐ ๋์ด๋๋ค ํด๋
// ์ด์ ์ ๊ตฌํ๋ for๋ฌธ๊ณผ ํ๊ท ์ ๊ตฌํ๋ ์ฝ๋๋ฅผ ์์ ํ ํ์๊ฐ ์์
total = 0;
int[] scores = {95, 76, 67, 56, 87}; // ๋ฐฐ์ด ์์ฑ
for (int i = 0; i < scores.length; i++) {// scores.length -> ๋ฐฐ์ด์ ๊ฐฏ์
total += scores[i];
}
avg = (double)total / scores.length;
System.out.println("์ด์ ์ " + total + "์ ์ด๊ณ , ํ๊ท ์ " + avg + "์
๋๋ค.");
}
}
์ต๋๊ฐ ์ต์๊ฐ ๊ตฌํ๊ธฐ
public class MyArray_03 {
public static void main(String[] args) {
/* ์ต๋๊ฐ, ์ต์๊ฐ ๊ตฌํ๊ธฐ */
int[] score = { 79, 88, 91, 33, 100, 55, 95 };
int max = score[0]; // ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ๊ฐ์ผ๋ก ์ต๋๊ฐ์ ์ด๊ธฐํ ํ๋ค.
int min = score[0]; // ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ๊ฐ์ผ๋ก ์ต์๊ฐ์ ์ด๊ธฐํ ํ๋ค.
for(int i = 1; i < score.length; i++) {
if(score[i] > max) {
max = score[i];
System.out.println("max: " + max); // ๊ฐ์ด ๋ณ๊ฒฝ๋๋ ๊ฒ์ด ์ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ดํด๊ฐ ์๋ ๋ ์จ๋ณด๊ธฐ.
}
if(score[i] < min) {
min = score[i];
}
} // end of for
System.out.println("์ต๋๊ฐ : " + max);
System.out.println("์ต์๊ฐ : " + min);
}
}
โ์์ฉ ๋ฌธ์
public class Ex_01_Array_03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean run = true; // ๋ฐ๋ณต๋ฌธ์ ์กฐ๊ฑด์ผ๋ก ์ฌ์ฉ -> ๊ฐ์ด false๊ฐ ๋๋ค๋ฉด ๋ฐ๋ณต๋ฌธ์ด ์ข
๋ฃ
int studentNum = 0; // ํ์์
int[] scores = null; // ์ ์๋ฅผ ์
๋ ฅ ๋ฐ์ ๋น ๋ฐฐ์ด ์์ฑ. ์ฌ์ฉ์์๊ฒ ์
๋ ฅ๋ฐ์ ํ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์ด ์์ฑ.
while (run) {
System.out.println("-----------------------------------------------------");
System.out.println("1.ํ์์ | 2.์ ์์
๋ ฅ | 3.์ ์๋ฆฌ์คํธ | 4.๋ถ์ | 5.์ข
๋ฃ");
System.out.println("-----------------------------------------------------");
System.out.print("์ ํ> ");
int selectNo = scanner.nextInt();
if (selectNo == 1) { // ํ์์๋ฅผ ์
๋ ฅ ๋ฐ์์ ๋ฐฐ์ด ์์ฑ
System.out.print("ํ์์> ");
studentNum = scanner.nextInt();
scores = new int[studentNum];
System.out.println(Arrays.toString(scores));
} else if (selectNo == 2) { // ์์ฑ๋ ๋ฐฐ์ด์ ๊ฐฏ์ ๋งํผ ์ ์ ์
๋ ฅ
for(int i = 0; i < scores.length; i++) {
System.out.print("scores["+i+"] : ");
scores[i] = scanner.nextInt();
}
} else if (selectNo == 3) { // ์
๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ๊ฐ์ ์ถ๋ ฅ
for(int i = 0; i < scores.length; i++) {
System.out.println("score["+i+"] : " + scores[i]);
}
} else if (selectNo == 4) { // ์ต๊ณ ์ ์, ํ๊ท ์ ์ ์ถ๋ ฅ
int max = 0;
int sum = 0;
double avg = 0;
for(int i = 0; i < scores.length; i++) {
max = (max < scores[i]) ? scores[i] : max;
sum += scores[i];
}
avg = (double) sum / studentNum; // ํ๊ท
System.out.println("์ต๊ณ ์ ์: " + max);
System.out.println("ํ๊ท ์ ์: " + avg);
} else if (selectNo == 5) { // run ๊ฐ ๋ณ๊ฒฝ
run = false;
}
}
System.out.println("ํ๋ก๊ทธ๋จ ์ข
๋ฃ");
scanner.close();
}
}
์คํ ์)
-----------------------------------------------------
1.ํ์์ | 2.์ ์์
๋ ฅ | 3.์ ์๋ฆฌ์คํธ | 4.๋ถ์ | 5.์ข
๋ฃ
-----------------------------------------------------
์ ํ> 1
ํ์์> 3
[0, 0, 0]
-----------------------------------------------------
1.ํ์์ | 2.์ ์์
๋ ฅ | 3.์ ์๋ฆฌ์คํธ | 4.๋ถ์ | 5.์ข
๋ฃ
-----------------------------------------------------
์ ํ> 2
scores[0]> 90
scores[1]> 80
scores[2]> 70
-----------------------------------------------------
1.ํ์์ | 2.์ ์์
๋ ฅ | 3.์ ์๋ฆฌ์คํธ | 4.๋ถ์ | 5.์ข
๋ฃ
-----------------------------------------------------
์ ํ> 3
scores[0]: 90
scores[1]: 80
scores[2]: 70
-----------------------------------------------------
1.ํ์์ | 2.์ ์์
๋ ฅ | 3.์ ์๋ฆฌ์คํธ | 4.๋ถ์ | 5.์ข
๋ฃ
-----------------------------------------------------
์ ํ> 4
์ต๊ณ ์ ์: 90
ํ๊ท ์ ์: 80.0
-----------------------------------------------------
1.ํ์์ | 2.์ ์์
๋ ฅ | 3.์ ์๋ฆฌ์คํธ | 4.๋ถ์ | 5.์ข
๋ฃ
-----------------------------------------------------
์ ํ> 5
ํ๋ก๊ทธ๋จ ์ข
๋ฃ
โ
* ๋ด์ฉ ์ฐธ๊ณ : ํ์๊ฐ์ ๋ฐ ์๋ฐ์ ์ ์ 3rd
'Programming Language > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ๋ฉ์๋ (method) ์ ์ธ๊ณผ ๊ตฌํ ยท ํธ์ถ ยท ์ข ๋ฅ (0) | 2024.08.09 |
---|---|
[Java] Array | ๋ฐฐ์ด์ ํ์ฉ ยท 2์ฐจ์ ๋ฐฐ์ด (0) | 2024.08.09 |
[Java] while ๋ฌธ ยท break๋ฌธ ยท continue ๋ฌธ (0) | 2024.08.09 |
[Java] Switch๋ฌธ ยท for๋ฌธ (0) | 2024.05.22 |
[Java] ๋นํธ ์ฐ์ฐ์ ยท if ๋ฌธ (0) | 2024.05.21 |