1. ๋ฐฐ์ด์ด๋?
๐ก ๊ฐ์ ํ์ ์ ์ฌ๋ฌ ๋ณ์๋ฅผ ํ๋์ ๋ฌถ์์ผ๋ก ๋ค๋ฃจ๋ ๊ฒ
๊ฐ ์ ์ฅ ๊ณต๊ฐ์ด ์ฐ์์ ์ผ๋ก ๋ฐฐ์น๋์ด ์๋ค.
2. ๋ฐฐ์ด์ ์ ์ธ๊ณผ ์์ฑ
๋ฐฐ์ด์ ์ ์ธ ๋ฐฉ๋ฒ
1. ํ์ [ ] ๋ณ์์ด๋ฆ; → int [ ] score;
2. ํ์ ๋ณ์์ด๋ฆ[ ]; → int score [ ];
⇒ 1๋ฒ์ ์ ํธ! ๋๊ดํธ๊ฐ ๋ณ์ ์ด๋ฆ์ ์ผ๋ถ๋ผ๊ธฐ ๋ณด๋ค๋ ํ์ ์ ์ผ๋ถ๋ผ๊ณ ๋ณด๊ธฐ ๋๋ฌธ.
๋ฐฐ์ด์ ์์ฑ
๐ก ํ์ [ ] ๋ณ์์ด๋ฆ; → ๋ฐฐ์ด์ ์ ์ธ(๋ฐฐ์ด์ ๋ค๋ฃจ๊ธฐ ์ํ ์ฐธ์กฐ ๋ณ์ ์ ์ธ)
๋ณ์์ด๋ฆ = new ํ์ [๊ธธ์ด]; → ๋ฐฐ์ด์ ์์ฑ(์ค์ ์ ์ฅ ๊ณต๊ฐ์ ์์ฑ)
int[] score; // intํ์
์ ๋ฐฐ์ด์ ๋ค๋ฃจ๊ธฐ ์ํ ์ฐธ์กฐ๋ณ์ score ์ ์ธ
score = new int[5]; // intํ์
์ 5๊ฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๋ฐฐ์ด
int[] score = new int[5]; // ๋ฐฐ์ด์ ์ ์ธ๊ณผ ์์ฑ์ ๋์์ ํ๋ค
์ ์ธ๊ณผ ์์ฑ ๊ณผ์
1. int[] score;
2. score = new int [5];
์ฐ์ฐ์ new์ ์ํด์ ๋ฉ๋ชจ๋ฆฌ์ ๋น ๊ณต๊ฐ์ 5๊ฐ์ intํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๊ณต๊ฐ ๋ง๋ จ
๊ฐ ๋ฐฐ์ด์์๋ ์๋์ ์ผ๋ก int์ ๊ธฐ๋ณธ๊ฐ(default)์ธ 0์ผ๋ก ์ด๊ธฐํ๋จ
๋์ ์ฐ์ฐ์ =์ ์ํด ๋ฐฐ์ด์ ์ฃผ์๊ฐ intํ ๋ฐฐ์ด ์ฐธ์กฐ ๋ณ์ score์ ์ ์ฅ๋๋ค.
3. ๋ฐฐ์ด์ ๊ธธ์ด์ ์ธ๋ฑ์ค
๐ก ์ธ๋ฑ์ค: ๋ฐฐ์ด์ ์์๋ง๋ค ๋ถ์ฌ์ง ์ผ๋ จ๋ฒํธ ๋ฒ์: 0 ~ ๋ฐฐ์ด ๊ธธ์ด-1
score[3] = 100; // ๋ฐฐ์ด score์ 4๋ฒ์งธ ์์์ 100์ ์ ์ฅ
int value = score[3]; // ๋ฐฐ์ด score์ 4๋ฒ์งธ ์์์ ์ ์ฅ๋ ๊ฐ์ ์ฝ์ด์ value์ ์ ์ฅ
1. score [3] = 100;
2. int value = score [3];
- ๋ณ์๋ ์์์ผ๋ก index ์ฌ์ฉ ๊ฐ๋ฅ
for (int i = 0; i < 5; i++) {
score[i] = i * 10;
}
์ฃผ์์ฌํญ
index์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๊ฐ์ index๋ก ์ฌ์ฉํ์ง ์์์ผ ํ๋ค!!
int[] score = new int[5]; // ๊ธธ์ด๊ฐ 5์ธ int๋ฐฐ์ด. index์ ๋ฒ์๋ 0~4
score[5] = 100; // index์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๊ฐ์ index๋ก ์ฌ์ฉ - Error
→ ๋ณ์์ ๊ฐ์ ์คํ ์์ ๋์ ๋๋ฏ๋ก ์ปดํ์ผ๋ฌ๋ ์ด ๊ฐ์ ๋ฒ์๋ฅผ ํ์ธํ ์ ์๋ค.
๋ฐฐ์ด์ ๊ธธ์ด
๐ก ๋ฐฐ์ด์ ์์์ ๊ฐ์, ์ฆ ๊ฐ์ ์ ์ฅํ ์ ์๋ ๊ณต๊ฐ์ ๊ฐ์๋ค
- ๋ฐฐ์ด์ ๊ธธ์ด์ ์กฐ๊ฑด
1. ์์ ์ ์
2. ์ต๋๊ฐ: intํ์ ์ ์ต๋๊ฐ(์ฝ 20์ต)
- ๊ธธ์ด๊ฐ 0์ธ ๋ฐฐ์ด ์์ฑ ๊ฐ๋ฅ
int score - new int[0];
⇒ ๋ฐฐ์ด์ ๊ธธ์ด๋ int๋ฒ์์ ์์ ์ ์(0 ํฌํจ)์ด์ด์ผ ํ๋ค.
์ถํ ์ด ๋ฐฐ์ด์ด ํ์ํ ์ํฉ์ ๋ง๋๊ฒ ๋ ๊ฒ์ด๋ค.
๋ฐฐ์ด์ด๋ฆ.length
ํ๋ฒ ์์ฑํ๋ฉด ๊ธธ์ด๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
⇒ ๋ฐฐ์ด์ด๋ฆ.length ๋ ์์
int[] arr = new int[5];
arr.length = 4; // ๋ฐฐ์ด์ ๊ธธ์ด๋ ๋ณ๊ฒฝํ ์ ์๋ค. - ERROR
๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์ง์ ์ ๋ ฅํ๋ ๊ฒ๋ณด๋ค ๋ฐฐ์ด์ด๋ฆ.length๋ก ํ๋ ๊ฒ์ด ์ฝ๋ ๊ด๋ฆฌ๊ฐ ์ฝ๊ณ ์๋ฌ๊ฐ ๋ฐ์ํ ํ๋ฅ ์ด ์ ์ด์ง๋ค.
int[] arr = new int[5];
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
⇒ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ๋ณ๊ฒฝ๋์ด๋ ์ฝ๋์ ๋ณํ X
๋ฐฐ์ด์ ๊ธธ์ด ๋ณ๊ฒฝํ๊ธฐ
1. ๋ ํฐ ๋ฐฐ์ด์ ์๋ก ์์ฑํ๋ค.
2. ๊ธฐ์กด ๋ฐฐ์ด์ ๋ด์ฉ์ ์๋ก์ด ๋ฐฐ์ด์ ๋ณต์ฌํ๋ค.
์ด๋ฌํ ์์ ๋ค์ ๊ฝค๋ ๋น์ฉ์ด ๋ง์ด ๋ค๊ธฐ ๋๋ฌธ์, ์ฒ์๋ถํฐ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋๋ํ๊ฒ ์ก๋ ๊ฒ์ด ์ข๋ค.
4. ๋ฐฐ์ด์ ์ด๊ธฐํ
๊ฐ๋ฅ
int[] score = new int[]{50, 60, 70, 80, 90}; // ๋ฐฐ์ด์ ์์ฑ๊ณผ ์ด๊ธฐํ๋ฅผ ๋์์
int[] score = {50, 60, 70, 80, 90};
๋ถ๊ฐ๋ฅ
int[] score;
score = {50, 60, 70, 80, 90};
int add(int[] arr) { ... }
int result = add({50, 60, 70, 80, 90});
๋ฐฐ์ด์ ์ ์ธ๊ณผ ์์ฑ์ ๋ฐ๋ก ํ๋ ๊ฒฝ์ฐ์๋ 'new ํ์ [ ]'์ ์๋ตํ ์ ์๋ค.
๋ฐฐ์ด์ ์ถ๋ ฅ
for๋ฌธ
int[] iArr = { 100, 95, 80, 70, 60 };
for(int i = 0; i < iArr.length; i++) {
System.out.print(iArr[i] + ","); // ๊ฐ ์์๊ฐ์ ๊ตฌ๋ณ์ ์ํด ์ผํ๋ฅผ ๋ฃ๋๋ค.
}
System.out.println(); // ๋ค์ ์ถ๋ ฅ์ด ๋ฐ๋ก ์ด์ด์ง์ง ์๋๋ก ์ค ๋ฐ๊ฟ์ ํ๋ค
Arrays.toString()
int[] iArr = { 100, 95, 80, 70, 60 };
System.out.println(Arrays.toString(iArr)); // [100, 95, 80, 70, 60]
System.out.println(iArr); // [I@14318bb -> ํ์
@์ฃผ์ (์ธ๋ชจ์๋ ์ ๋ณด)
์์ธ ์ํฉ - char
char[] chArr = {'a', 'b', 'c', 'd'};
System.out.println(chArr); // abed๊ฐ ์ถ๋ ฅ๋๋ค•
5. ๋ฐฐ์ด์ ๋ณต์ฌ
for๋ฌธ์ ํตํ ๋ฐฐ์ด ๋ณต์ฌ
int[] arr = new int[5];
int[] tmp = new int[10]; // ๊ธฐ์กด ๋ฐฐ์ด๋ณด๋ค ๊ธธ์ด๊ฒ 2๋ฐฐ์ธ ๋ฐฐ์ด ์์ฑ
for(int i = 0; i < arr.length; i++){
tmp[i] = arr[i]; // arr[i]์ ๊ฐ์ tmp[i]์ ์ ์ฅ
}
arr = tmp; // ์ฐธ์กฐ๋ณ์ arr์ด ์๋ก์ด ๋ฐฐ์ด์ ๊ฐ๋ฆฌํค๊ฒ ํ๋ค.
๋ฐฐ์ด์ ์ฐธ์กฐ ๋ณ์๋ฅผ ํตํด์๋ง ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์. ์์ ์ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ ๋ณ์๊ฐ ์๋ ๋ฐฐ์ด์ ์ฌ์ฉํ ์ ์๋ค.
์ด๋ ๊ฒ ์ธ๋ชจ์๊ฒ ๋ ๋ฐฐ์ด์ JVM์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ์ ์ํด์ ์๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์์ ์ ๊ฑฐ๋๋ค.
System.arraycopy()๋ฅผ ์ด์ฉํ ๋ฐฐ์ด์ ๋ณต์ฌ
โ for๋ฌธ์ ํตํ ๋ฐฐ์ด์ ๋ณต์ฌ๋ณด๋ค ๋ ํจ์จ์ ์ด๋ค.
num [0]์์ newNum [0]์ผ๋ก num.length๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌ
System.arraycopy(num, 0, newNum, 0, num.length);
6. ๋ฐฐ์ด์ ํ์ฉ
1. ์ดํฉ๊ณผ ํ๊ท
2. ์ต๋๊ฐ๊ณผ ์ต์๊ฐ
3. ์๊ธฐ
4. ์์์ ๊ฐ์ผ๋ก ๋ฐฐ์ด ์ฑ์ฐ๊ธฐ
5. ์ ๋ ฌํ๊ธฐ(sort)
6. ๋น๋์ ๊ตฌํ๊ธฐ
์์ธํ ์ค๋ช ์ '์๋ฐ์ ์ ์'์ ์ฐธ๊ณ ํ๊ธฐ ๋ฐ๋๋ค.
์ดํฉ๊ณผ ํ๊ท
๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ๋ํด์ ์ดํฉ๊ณผ ํ๊ท ์ ๊ตฌํ๋ค.
public class SumAverage {
public static void main(String[] args) {
int sum = 0;
int[] score = {10, 20, 30, 40, 50};
for (int i = 0; i < score.length; i++) {
sum += score[i];
}
float average = sum / (float) score.length; // ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ float๋ก ์ป๊ธฐ ์ํด์ ํ๋ณํ
System.out.println(sum);
System.out.println(average);
}
}
์ต๋๊ฐ๊ณผ ์ต์๊ฐ
๋ฐฐ์ด์ ์์ ์ค์์ ์ ์ผ ํฐ ๊ฐ๊ณผ ์ ์ผ ์์ ๊ฐ์ ์ฐพ๋๋ค.
public class MaxMin{
public static void main(String[] args) {
int[] score = {20, 50, 40, 10, 30};
int max = score[0];
int min = score[0];
for (int i = 1; i < score.length; i++) {
if (max < score[i]) max = score[i];
else if (min > score[i]) min = score[i];
}
System.out.println(max);
System.out.println(min);
}
}
์๊ธฐ (shuffle)
๋ฐฐ์ด์ ์์์ ์์๋ฅผ ๋ฐ๋ณตํด์ ๋ฐ๊พผ๋ค. (์นด๋ ์๊ธฐ, ๋ก๋ ๋ฒํธ ์์ฑ)
- ์นด๋ ์๊ธฐ
0๋ถํฐ 9๊น์ง์ ์ ๋๋ค ํ๊ฒ ์๊ธฐ
public class Shuffle {
public static void main(String[] args) {
int[] num = new int[10];
for (int i = 0; i < num.length; i++) {
num[i] = i;
}
for (int i = 0; i < num.length; i++) {
int random = (int) (Math.random() * 10);
int tmp = num[i];
num[i] = num[random];
num[random] = tmp;
}
for (int n : num) {
System.out.printf("%d ", n);
}
}
}
- ๋ก๋ ๋ฒํธ ์์ฑ
1๋ถํฐ 45๊น์ง์ ์ ์ค ๋๋ค ํ ์ 6๊ฐ ๋ฝ๊ธฐ
public class Lotto {
public static void main(String[] args) {
int[] lotto = new int[45];
for (int i = 0; i < lotto.length; i++) {
lotto[i] = i + 1;
}
for (int i = 0; i < 6; i++) {
int num = (int) (Math.random() * 45);
int tmp = lotto[i];
lotto[i] = lotto[num];
lotto[num] = tmp;
}
for (int i = 0; i < 6; i++) {
System.out.printf("%d ", lotto[i]);
}
}
}
์์์ ๊ฐ์ผ๋ก ๋ฐฐ์ด ์ฑ์ฐ๊ธฐ
์ฐ์ ๋๋ ๋ถ์ฐ์์ ์ธ ๊ฐ๋ค๋ก ๋ฐฐ์ด์ ์ด๊ธฐํํ๋ค
- ์ฐ์์ ์ธ ๋ฒ์์ ๊ฐ
for(int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * arr.length);
}
- ๋ถ์ฐ์์ ์ธ ๋ฒ์์ ๊ฐ
public class Random {
public static void main(String[] args) {
int[] num = {10, 12, 16, 20, 30}; // ๋ถ์ฐ์์ ์ธ ๊ฐ๋ค๋ก ๊ตฌ์ฑ๋ ๋ฐฐ์ด
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
int random = (int) (Math.random() * num.length);
arr[i] = num[random];
}
System.out.println(Arrays.toString(arr));
}
}
์ ๋ ฌํ๊ธฐ (sort)
๋ฒ๋ธ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ํตํด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
class Sort {
public static void main(String[] args) {
int[] numArr = new int[10];
for (int i = 0; i < numArr.length; i++) {
System.out.print(numArr[i] = (int) (Math.random() * 10));
}
System.out.println();
for (int i = 0; i < numArr.length - 1; i++) {
boolean changed = false; // ์๋ฆฌ๋ฐ๊ฟ์ด ๋ฐ์ํ๋์ง๋ฅผ ์ฒดํฌํ๋ค.
for (int j = 0; j < numArr.length - 1 - i; j++) {
if (numArr[j] > numArr[j + 1]) { // ์์ ๊ฐ์ด ์์ผ๋ฉด ์๋ก ๋ฐ๊พผ๋ค.
int temp = numArr[j];
numArr[j] = numArr[j + 1];
numArr[j + 1] = temp;
changed = true; // ์๋ฆฌ๋ฐ๊ฟ ๋ฐ์
}
}
if (!changed) break; // ์๋ฆฌ๋ฐ๊ฟ์ด ์์ผ๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋ฒ์ด๋๋ค.
for (int j : numArr) {
System.out.print(j); // ์ ๋ ฌ๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
}
System.out.println();
}
}
}
๋น๋์ ๊ตฌํ๊ธฐ
๋ฐฐ์ด์ ์ด๋ค ๊ฐ์ด ๋ช ๊ฐ ์ ์ฅ๋์ด ์๋์ง ์ธ์ด์ ๋ณด์ฌ์ค๋ค.
class Frequency {
public static void main(String[] args) {
int[] numArr = new int[10];
int[] counter = new int[10];
for (int i = 0; i < numArr.length; i++) {
numArr[i] = (int) (Math.random() * 10); // 0ใ9์ ์์์ ์๋ฅผ ๋ฐฐ์ด์ ์ ์ฅ
System.out.print(numArr[i]);
}
System.out.println();
for (int j : numArr) {
counter[j]++;
}
for (int i = 0; i < numArr.length; i++) {
System.out.println(i + "์ ๊ฐ์: " + counter[i]);
}
}
}
Reference
์๋ฐ์ ์ ์ - ๋จ๊ถ ์ฑ
'๐ Book > ์๋ฐ์ ์ ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
5-3์ฅ ๋ค์ฐจ์ ๋ฐฐ์ด (0) | 2023.03.29 |
---|---|
5-2์ฅ String๋ฐฐ์ด (0) | 2023.03.29 |
4-2์ฅ ๋ฐ๋ณต๋ฌธ (0) | 2023.03.29 |
4-1์ฅ ์กฐ๊ฑด๋ฌธ (0) | 2023.03.29 |
3-6์ฅ ๊ธฐํ ์ฐ์ฐ์ (0) | 2023.03.14 |
๋๊ธ