
// 배열 사용하지 않을 경우
int score1, score2, score3, score4, score5;
// 배열 사용 경우
int[] score = new int[5]; // 5개의 int를 저장할 수 있는 배열을 생성

타입[] 변수이름;
타입 변수이름[];
타입[] 변수이름 = new 타입[길이];
int[] score = new int[5];
타입[] 배열 이름 = new 타입[길이];
int[] arr = new int[5];
int[] arr = new int[5];
int tmp = arr.lengh;
int[] score = new int[]{50,60,70,80,90}; // 배열의 생성과 초기화를 동시에
int[] score = {50,60,70,80,90}; // new int[]를 생략할 수 있음
// 더 간단히 하는 방법
int[] score;
score = new int[]{50,60,70,80,90} // OK
score = {50,60,70,80,90} // 에러. new int[]를 생략할 수 없음
int add(int[] arr) {/* 내용 생략 */} // add메서드
int result = add(new int[]{100,40,50,60}) // ok
int result = add({100,40,50,60}) // 에러. new int[] 생략 불가능
중괄호{} 안에 아무것도 넣지 않는다면 길이가 0인 배열이 생성된다.
배열의 출력은 for문을 활용 할 수 있으며, 'Arrays.toString(배열이름)'메서드를 사용한다.
int[] iArr = {1,2,3,4,5};
System.out.println(Arrays.toString(iArr));
배열은 참조변수를 통해서만 접근할 수 있기 때문에, 자신을 가리키는 참조변수가 없는 배열은 사용할 수 없다. 이렇게 쓸모없게 된 배열은 JVM의 가비지 컬렉터에 의해서 자동적으로 메모리에서 제거된다.
for(int i=0; i<num.length;i++){newNum[i] = num[i]}; // for문 활용
System.arraycopy(num, 0, newNum, 0, num.length); // arraycopy() 활용
for(i=0;i<arr.length;i++){
arr[i] = (int)(Math.random()*5) //
}
class ArrayEx11 {
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(); // 9558044998
for (int i=0; i < numArr.length ; i++ ) {
counter[numArr[i]]++; // 이러한 식으로 배열에 값을 1씩 더해줌
}
for (int i=0; i < numArr.length ; i++ ) {
System.out.println( i +"의 개수 :"+ counter[i]);
}
}
}
String[] name = new String[3]; // 3개의 문자를 담을 수 있는 배열 생성
| 자료형 | 기본값 |
|---|---|
boolean | static |
char | \u0000 |
byte, short, int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d 또는 0,0 |
참조형 변수 | null |
// 기존 방식
String[] name = new String[3];
name[0] = new String("Kim");
name[1] = new String("Park");
name[2] = new String("Yi");
// String 허용 방식
String[] name = new String[3];
name[0] = "Kim";
name[1] = "Park";
name[2] = "Yi";

String클래스는 char배열에 기능(메소드)을 추가한 것이다.
| 매서드 | 설명 |
|---|---|
| char charaAt(int index) | 해당 위치에 있는 문자 반환 |
| int length() | 문자 길이 반환 |
| String substring(int from, int to) | 문자열에서 해당 범위 문자열 반환(마지막은 포함X) |
| boolean equals(Object obg) | 문자열의 내용이 obj와 같은지 확인 |
| char[]toCharArray() | 문자열을 문자배열(char[])로 변환하여 반환 |
| 선언 방법 | 선언 예 |
|---|---|
| 타입[ ][ ] 변수이름; | int[ ][ ] score; |
| 타입 변수이름[ ][ ]; | int score[ ][ ]; |
| 타입[ ] 변수이름[ ]; | int[ ] score[ ]; |
int[][] score = new int[4][3]
int[][] arr = new int[][]{{1,2,3},{4,5,6}};
int[][] arr = {{1,2,3},{4,5,6}}; // new int[][]생략

class ArrayEx18 {
public static void main(String[] args) {
int[][] score = {
{ 100, 100, 100}
, { 20, 20, 20}
, { 30, 30, 30}
, { 40, 40, 40}
};
int sum = 0;
for(int i=0;i < score.length;i++) {
for(int j=0;j < score[i].length;j++) {
System.out.printf("score[%d][%d]=%d%n", i, j, score[i][j]);
}
}
// socre 모든 합 구하기
for (int[] tmp : score) {
for (int i : tmp) {
sum += i;
}
}
System.out.println("sum="+sum);
}
}
int[][] score = new int[5][3]; // 5행 3열의 2차원 배열 생성
// 아래로 표현 가능
int[][] score = new int[5][];
score[0] = new int[3];
score[1] = new int[3];
score[2] = new int[3];
score[3] = new int[3];
score[4] = new int[3];
// 0행에 행번호를, 0열에 열번호를 저장한다.
for(int i=1;i<SIZE;i++)
board[0][i] = board[i][0] = (char)(i+'0');