๐ ๋ฐฐ์ด(array)
: ๊ฐ์ type์ ์ฌ๋ฌ ๋ณ์ โ ํ๋์ ๋ฌถ์์ผ๋ก ๋ค๋ฃจ๋ ๊ฒ
๋ง์ ์์ ๋ฐ์ดํฐ ์ ์ฅ โ ๋ณ์ ์ ์ธ ์ฌ๋ฌ๋ฒ ํด์ผํจ
๋ฐฐ์ด ์ฌ์ฉ โก๏ธ ํ๋ฒ์ ์ ์ธ + ๋ฐฐ์ด์ ๊ธธ์ด๋ง ๋ฐ๊พธ๋ฉด ๋จ
๋ณ์์ ๋ฌ๋ฆฌ ๊ฐ ์ ์ฅ๊ณค๊ฐ์ด ์ฐ์์ ์ผ๋ก ๋ฐฐ์น๋จ
๊ฐ์ํ์ ์ ์ ์ ๐จ
๐ ๋ณ์์ ์ธ๋ฐฉ์
int score1, score2, score3, score4, score5;
๐ ๋ฐฐ์ด์ฌ์ฉ
int[] score = new int [5];
// type[] ์ฐธ์กฐ๋ณ์ = ์์ฑ์ฐ์ฐ์ [๋ฐฐ์ด๊ธธ์ด];
์ข ๋ฅ | ์ฐจ์ด์ |
---|---|
๋ฐฐ์ด์ ์ธ | ์์ฑ๋ ๋ฐฐ์ด์ ๋ค๋ฃจ๊ธฐ ์ํ ์ฐธ์กฐ๋ณ์ ๊ณต๊ฐ ์์ฑ |
๋ฐฐ์ด์์ฑ | ๊ฐ์ ์ ์ฅํ ์ ์๋ ๊ณต๊ฐ์ด ์์ฑ |
๐ ๋ฐฐ์ด์ ์ธ (์ฐธ์กฐ๋ณ์์ ์ธ)
- type[] ์ฐธ์กฐ๋ณ์์ด๋ฆ;
- int[] score;
๐ ๋ฐฐ์ด์์ฑ (์ค์ ์ ์ฅ๊ณต๊ฐ์์ฑ)
- ์ฐธ์กฐ๋ณ์์ด๋ฆ = new type[๊ธธ์ด];
- score = new int[5];
๐ ๋ฐฐ์ด ์ ์ธ + ์์ฑ
- type[] ์ฐธ์กฐ๋ณ์์ด๋ฆ = new type[๊ธธ์ด];
- int[] score = new int[5];
๐ ๋ฐฐ์ด์ ์์ (element) : ์์ฑ๋ ๋ฐฐ์ด์ ๊ฐ ์ ์ฅ๊ณต๊ฐ
- ๋ฐฐ์ด์ด๋ฆ[์ธ๋ฑ์ค] โ ๋ฐฐ์ด์ ์์์ ์ ๊ทผ๊ฐ๋ฅ
๐ ๋ฐฐ์ด์ธ๋ฑ์ค (index) : ๋ฐฐ์ด์ ์์๋ง๋ค ๋ถ์ฌ์ง ์ผ๋ ฌ๋ฒํธ
์ธ๋ฑ์ค โ 1์ด ์๋ 0๋ถํฐ ์์ํจ
์ธ๋ฑ์ค ๋ฒ์ โ 0 ~ (๋ฐฐ์ด๊ธธ์ด - 1)
์ธ๋ฑ์ค๋ก ์์๋์ ๋ณ์, ์์ ์ฌ์ฉ๊ฐ๋ฅ
int[] score = new int[5];
- ๊ธธ์ด : 5
- ์ธ๋ฑ์ค๋ฒ์ : 0 ~ 4
๐ ๋ฐฐ์ด์ ์ธ ๋ฐ ์์ฑ
int[] score = new int[5];
๐ ๊ฐ ์ ์ฅํ๊ธฐ
score[3] = 100; // ๋ฐฐ์ด4๋ฒ์งธ์์ -> ๊ฐ์ ์ฅ
๐ ๊ฐ ์ฝ์ด์ค๊ธฐ
int value = score[3];
JVM (์๋ฐ๊ฐ์๋จธ์ ) โ ๋ชจ๋ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋ณ๋๋ก ๊ด๋ฆฌ
๋ฐฐ์ด โ ํ๋ฒ ์์ฑํ๋ฉด ๊ธธ์ด ๋ณ๊ฒฝ ๋ถ๊ฐ โ๏ธ
๋ฐฐ์ด์ ๊ฐ์ ์ฝ์์๋ง ์์
โ ๋ฐฐ์ด ์์ฑ โ ์ปดํ์ผ ํ, ์คํ๋๋ ๋์
โก ๊ธธ์ด์ ๋ง๋ (byte) ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ํ์ โ ์ฃผ์๋ฐฐ์
โข ์ถํ ๋ฐฐ์ด๊ธธ์ด ๋ณ๊ฒฝํ๋ คํ๋ค๋ฉด โ ๋ค์ ์ฐ์์ ์ผ๋ก ๊ณต๊ฐ์ด ์๋ค๋ ๋ณด์ฅ์ด ์์ โ๏ธ
๐ ๋ฐฐ์ด์ ๊ธธ์ด
int[] iArray = new int[5];
int len = iArray.length;
// len โ ์์
๐ ๋ฐฐ์ด ์ถ๋ ฅ (๋ฐ๋ณต๋ฌธ์ฌ์ฉ)
int[] score = new int[6];
for (int i = 0; i < score.length; i++) {
System.out.println(score[i]);
}
๐ ๋ฐฐ์ด์ ์ด๊ธฐํ
- ๋ฐฐ์ด ์์ฑ๊ณผ ๋์์ ์๋์ผ๋ก ๊ธฐ๋ณธ๊ฐ(0)์ผ๋ก ์ด๊ธฐํ๋จ
- ๊ฐ ์์๋ง๋ค ์ํ๋ ๊ฐ ์ง์ ํด ์ด๊ธฐํ ๊ฐ๋ฅ
// ๊ธธ์ด๊ฐ 5์ธ intํ ๋ฐฐ์ด์์ฑ
int[] score = new int[5];
// ์ง์ ์ด๊ธฐํ
score[0] = 50;
score[1] = 60;
score[2] = 70;
score[3] = 80;
score[4] = 90;
// ๋ฐ๋ณต๋ฌธ์ ํตํ ์ด๊ธฐํ (๊ท์น์ด ์์ด์ผ๋ง ๊ฐ๋ฅ)
for (int i = 0; i < score.length; i++) {
score[i] = i * 10 + 50;
}
๐ ์ผ๋ฐ์ ์๋ฐ ๋ฐฐ์ด ์ด๊ธฐํ ๋ฐฉ๋ฒ
int[] score = new int[] {50, 60, 70, 80, 90};
int[] score = {50, 60, 70, 80, 90}; // ์๋ต๊ฐ๋ฅ
int[] iArray = {100, 95, 80, 70, 60}; // ๋ฐฐ์ด์์ด๊ธฐํ
for (int i = 0; i < iArray.length; i++) {
System.out.println(iArray[i]);
}
๋ฐฐ์ด์ ๋ชจ๋ ์์ โ ['์ฒซ๋ฒ์งธ์์', '๋๋ฒ์งธ์์' โขโขโข] ๋ฐํ
๋ฌธ์์ด type์ผ๋ก ๋ฐํํจ
int[] iArray = {100, 95, 80, 70, 60};
System.out.println(Arrays.toString(iArray));
// [100, 95, 80, 80, 60] ์ถ๋ ฅ
Array๊ฐ ๋ฐ๋ก ์ถ๋ ฅ โ ํ์
@์ฃผ์
๋ฐํ
๋ฐฐ์ด์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ๋ณ์๊ฐ ์ถ๋ ฅ๋จ
int[] iArray = {100, 95, 80, 70, 60};
System.out.println(iArray);
// [I@12345bb ์ถ๋ ฅ
char type ๋ฐฐ์ด โ println
์ผ๋ก ๋ฐ๋ก ์ถ๋ ฅ
๋ฐฐ์ด์ ์์ โ '๊ตฌ๋ถ์ ์์ด' ๊ทธ๋๋ก ์ถ๋ ฅ๋จ
char[] chArray = {'a', 'b', 'c', 'd'};
System.out.println(chArray);
// abcd ์ถ๋ ฅ
import java.util.Arrays;
class Array1 {
public static void main(String[] args) {
int[] iArray1 = new int[10]; // 0 ~ 9
int[] iArray2 = new int[10]; // 0 ~ 9
int[] iArray3 = {100, 95, 80, 70, 60}; // ๋ฐฐ์ด์์ด๊ธฐํ
char[] chArray = {'a', 'b', 'c', 'd'};
for (int i = 0; i < iArray1.length; i++) { // i -> 0 ~ 9 index number
iArray1[i] = i + 1; // ๋ฐฐ์ด์ 1 ~ 10 ๊ฐ ๋ฃ์
}
for (int i = 0; i < iArray2.length; i++) { // i -> 0 ~ 9 index number
iArray2[i] = (int)(Math.random() * 10) + 1; // 1 ~ 10๊น์ง ๋์ ์ฝ์
}
for (int i = 0; i < iArray1.length; i++) {
System.out.print(iArray1[i] + ",");
}
System.out.println();
System.out.println(Arrays.toString(iArray2));
// Arrays.toString() -> ๋ฐฐ์ด์๋ชจ๋ ์์ String type์ผ๋ก ๋ฐํ
System.out.println(Arrays.toString(iArray3));
System.out.println(Arrays.toString(chArray));
// ๋ฐฐ์ด ๋ฐ๋ก ์ถ๋ ฅ -> ์ฐธ์กฐ๋ณ์ ๋ฐํ
System.out.println(iArray3);
// char type ๋ฐฐ์ด ๋ฐ๋ก ์ถ๋ ฅ -> ๊ตฌ๋ถ์์์ด ๋ฐฐ์ด์๋ชจ๋ ์์ ์์ธ์ถ๋ ฅ
System.out.println(chArray);
}
}
class Array2 {
public static void main(String[] args) {
int sum = 0; // ์ดํฉ๋ณ์
float average = 0f; // ํ๊ท ๋ณ์ (float -> ์ ๋ฏธ์ฌ f)
int[] score = {100, 88, 100, 100, 90};
// ์ดํฉ๋ณ์ <- ๋ฐฐ์ด์์ ๋ฃ๊ธฐ
for (int i = 0; i < score.length; i++) {
sum += score[i];
}
// ํ๊ท ๊ฐ ๊ตฌํ๊ธฐ
average = sum / (float)score.length; // average float type์ ๋ง์ถฐ ํ๋ณํ
System.out.println("์ดํฉ : " + sum);
System.out.println("ํ๊ท : " + average);
}
}
class Array3 {
public static void main(String[] args) {
int[] score = {79, 88, 91, 33, 100, 55, 95};
// ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์ -> ๊ฐ๊ฐ max min ์ด๊ธฐํ
int max = score[0];
int min = score[0];
for (int i = 1; i < score.length; i++) {
if (score[i] > max) {
max = score[i];
} else if (score[i] < min) {
min = score[i];
}
}
System.out.println("์ต๋๊ฐ : " + max);
System.out.println("์ต์๊ฐ : " + min);
}
}
class Array4 {
public static void main(String[] args) {
int[] numArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
// ์ซ์ํ ๋ฐฐ์ด -> ๋ฌธ์์ด๋ก ์ถ๋ ฅ
System.out.println(Arrays.toString(numArray));
for (int i = 0; i < 100; i++) {
int num = (int)(Math.random() * 10); // 0 ~ 9๊น์ง ๋์
int tmp = numArray[0];
numArray[0] = numArray[num];
numArray[num] = tmp;
}
System.out.println(Arrays.toString(numArray));
}
}
class Array5 {
public static void main(String[] args) {
int[] ball = new int[45]; // 45๊ฐ์ ์ ์๊ฐ ๋ฐฐ์ด
for (int i = 0; i < ball.length; i++) {
ball[i] = i + 1;
}
int tmp1 = 0; // ๋ ๊ฐ์ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉ
int tmp2 = 0; // ๋์์ ์ฌ์ฉ
for (int i = 0; i <6; i++) {
tmp2 = (int)(Math.random() * 45); // 0 ~ 44 ๋์
tmp1 = ball[i];
ball[i] = ball[tmp2];
ball[tmp2] = tmp1;
}
for (int i = 0; i < 6; i++) {
System.out.printf("ball[%d] = %d%n", i, ball[i]);
}
}
}
String[] name = new String[3];
// 3๊ฐ์ ๋ฌธ์์ด์ ๋ด์ ์ ์๋ ๋ฐฐ์ด
โ 3๊ฐ์ String type ์ฐธ์กฐ๋ณ์ ์ ์ฅ๊ณต๊ฐ ๋ง๋ จ๋จ
โก ์ฐธ์กฐํ๋ณ์ ๊ธฐ๋ณธ๊ฐ์ null
โข String ๋ฐฐ์ด ๊ฐ ์์๊ฐ โ null๋ก ์ด๊ธฐํ๋จ
์๋ฃํ | (์ด๊ธฐํ)๊ธฐ๋ณธ๊ฐ |
---|---|
boolean | false |
char | '\u0000' |
byte, short, int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d or 0.0 |
์ฐธ์กฐํ | null |
๐ ๊ธฐ๋ณธ๋ฐฉ๋ฒ
String[] name = new String[3];
name[0] = "Kim";
name[1] = "Park";
name[2] = "Lee";
๐ ๊ฐ๋จํ ๋ฐฉ๋ฒ
String[] name = new String[]{"Kim", "Park", "Lee"};
String[] name = {"Kim", "Park", "Lee"};
String class โ "" ํฐ๋ฐ์ดํ๋ง์ผ๋ก ๊ฐ๋ตํ ์ด๊ธฐํ ๊ฐ๋ฅ โ
But, String์ class์ด๋ฏ๋ก new์ฐ์ฐ์
๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์์ฑํด์ผํจ ๐จ
class Array6 {
public static void main(String[] args) {
String[] names = {"Kim", "Park", "Lee"};
for (int i = 0; i < names.length; i++) {
System.out.println("names[" + i + "] : " + names[i]);
}
String tmp = names[2];
System.out.println("tmp : " + tmp);
names[0] = "Jeong";
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
๐ String ํด๋์ค
: char[] ๋ฐฐ์ด์ method๋ฅผ ์ถ๊ฐํ ๊ฒ
char[]
+ method
โ class์ ์ ์ํจString ๊ฐ์ฒด โ ๊ฐ ์ฝ๊ธฐ๋ง ๊ฐ๋ฅ โ , ๋ณ๊ฒฝ ๋ถ๊ฐ โ๏ธ
๋ฌธ์์ด์ ๋ณ๊ฒฝ์ด ๋ถ๊ฐํ๋ฏ๋ก ์๋ก์ด ๋ด์ฉ์ ๋ฌธ์์ด์ด ์์ฑ๋๋ ๊ฒ
String str = "Java";
str = str + "8"; // ์๋ก์ด ๋ฌธ์์ด โ str์ ์ ์ฅ๋จ
๐ charAt() : ๋ฌธ์์ด์์ ์ง์ ๋ index์ ์๋ ํ ๋ฌธ์๋ฅผ ๊ฐ์ ธ์ด
- ๋ฌธ์์ด์์ char type์ผ๋ก ๊ฐ์ ธ์ด
String str = "ABCDE";
char ch = str.charAt(3); // D -> ch์ ์ ์ฅ
๐ substring( , ) : ๋ฌธ์์ด์ ์ผ๋ถ๋ฅผ ๋ฝ์๋
- (์ด์, ๋ฏธ๋ง)
String str = "012345";
String tmp = str.substring(1, 4);
System.out.println(tmp); // 123 ์ถ๋ ฅ
๐ equals() : ๋ฌธ์์ด ๋ด์ฉ์ด ๊ฐ์์ง ํ์ธ
- boolean (T, F)๋ก ๋ฐํ
- ๋ฌธ์์ด โ equals(), ๋ค๋ฅธ ๊ธฐ๋ณธํ โ ==
String str = "abc";
if (str.equals("ABC")) {
โขโขโข
}
๐ length() : ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ฐํ
- int type์ผ๋ก ๋ณํํจ
๐ toCharArray() : ๋ฌธ์์ด โ ๋ฌธ์๋ฐฐ์ด char[]๋ก ๋ณํํด์ ๋ฐํ
type[][] ์ฐธ์กฐ๋ณ์์ด๋ฆ = new type [ํ][์ด]
ํ ์ด๋ธ ํํ์ ๋ฐ์ดํฐ์ ์ฌ์ฉ๋จ
๋ค์ฐจ์ ๋ฐฐ์ด ์์ฑ ํ โ ๋ฐฐ์ด์์์ type์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํ๋จ
๐ 2์ฐจ์๋ฐฐ์ด
int[][] score = new int[4][3];
// 4ํ 3์ด 2์ฐจ์ ๋ฐฐ์ด
// ์ด 12๊ฐ์ ๋ฐฐ์ด์์
// ์ด๊ธฐํ : int 0
๋ฐฐ์ด์ด๋ฆ[ํ index][์ด index]
// ๋ฐฐ์ด score 1ํ1์ด ๊ฐ ์ ์ฅ
score[0][0] = 100;
// ๋ฐฐ์ด score 1ํ1์ด ๊ฐ ์ถ๋ ฅ
System.out.println(score[0][0]);
๐ ๊ธฐ๋ณธํ
int[][] arr = new int[][] {{1, 2, 3}, {4, 5, 6}};
int[][] arr = {{1, 2, 3}, {4, 5, 6}};
๐ ๊ฐ๋
์ฑ ๋์ธ๋ฒ์
int[][] arr = {
{1, 2, 3},
{4, 5, 6}
}
๊ตฌ๋ถ | method | ์ญํ |
---|---|---|
๋ฐฐ์ด์ ๋น๊ต | equals() | ๋ ๋ฐฐ์ด์ ๋ชจ๋ ์์ ๋น๊ต โ boolean๊ฐ์ผ๋ก ๋ฐํ |
๋ฐฐ์ด์ ์ถ๋ ฅ | toString() | ๋ฐฐ์ด์ ๋ชจ๋ ์์ โ ๋ฌธ์์ด๋ก ์ถ๋ ฅ (์ผ์ฐจ์๋ฐฐ์ด) |
deepToString() | ๋ฐฐ์ด์ ๋ชจ๋ ์์ โ ๋ฌธ์์ด๋ก ์ถ๋ ฅ (๋ค์ฐจ์๋ฐฐ์ด) | |
๋ฐฐ์ด์ ๋ณต์ฌ | copyOf() | ๋ฐฐ์ด ์ ์ฒด ๋ณต์ฌ โ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํ |
copyOfRange() | ๋ฐฐ์ด ์ผ๋ถ ๋ณต์ฌ โ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํ | |
๋ฐฐ์ด์ ์ ๋ ฌ | sort() | ๋ฐฐ์ด์ ์ ๋ ฌ |