1. 1차원 배열
1-1. 배열 만드는 법
// 1
int[] array = new int[4] // 요소 네개 짜리 만들기(출력하려면 순회 해야한다)
// 2
int array[] = new int[4] // 1번과 대괄호의 위치만 달라짐
// 3
int[] array = new int[]{1,2,3,4,5} // 값을 바로 넣기
// 4
int[] array = {1,2,3,4,5} // 3번보다 더 간단한 방법
만약 배열안에 문자열이 들어간다면 Stirng 타입을 사용해야한다. 혹시 문자와 숫자가 섞인 배열을 만들고 싶다면
Object[] mixedArray = new Object[5];
mixedArray[0] = "Hello";
mixedArray[1] = 123;
mixedArray[2] = 'A';
mixedArray[3] = 3.14;
mixedArray[4] = "World";
이렇게 Object타입을 사용해야한다.
1-2. 값 변경하기
array[인덱스 번호] = 변경할 내용
2. 1차원 배열 순회
위에서 만든 배열을 순회하는 방법은 for 문과 foreach를 사용하는 것이다.
int[] array = new int[4];
for (int i = 0; i < array.length; i++) {
array[i] = i + 1 ;
}
for (int number: array
) {
System.out.println(number);
}
1부터 4까지 출력하는 코드이다. for을 사용해서 각각의 인덱스에 값을 지정해주고 foreach를 사용해서 출력해주면 된다.
public class test {
public static void main(String[] args) {
String[] array = new String[][4];
for (int i = 0; i < array.length; i++) {
array[i] = String.valueOf(i + 1) ;
}
for (String number: array
) {
System.out.println(number);
}
}
}
만약 Stirng 타입을 사용한다면 타입을 변경해주고 String.valuOf를 사용하여 각각 index에 들어갈 숫자의 형을 변환해줘야 한다.
3. 2차원 배열
3-1. 2차원 배열만들기
// 1
String[][] seats = new String[][]{
{"A1", "A2", "A3", "A4", "A5"},
{"B1", "B2", "B3", "B4", "B5"},
{"C1", "C2", "C3", "C4", "C5"}
};
// 2
String[][] seasts = new String[10][15];
직접 만들거나 초기화만 해서 직접 요소를 집어 넣을 수도 있다.
3-2. 2차원 배열 순회하기
int[][] arr = new int[10][15];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = i + 1;
}
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
2차원 배열이기 때문에 행과 열이 있다.
쉽게 생각하면 가장 위의 for은 행을 뜻하고 안의 for은 행안의 각각의 요소를 제어한다고 생각하면 된다.
3-3. 활용하기
영화 좌석표 출력하기
영화 좌석표는 보통 '영어 + 숫자' => A11 이런식으로 이루어져 있다.
필요한 것은 숫자가 담긴 배열과 영어가 담긴 배열이다. 그래서 각각의 index끼리 더해주면 된다.
1. 원하는 배열을 만든다
String[][] seats = new String[10][15];
String[] eng = {"A","B","C","D","E","F","G","H","I","J"};
2. 배열을 조합해서 원하는 테이블을 만든다
for (int i = 0; i < seats.length; i++) {
for (int j = 0; j < seats[i].length; j++) {
seats[i][j] = eng[i] + (i + 1);
}
내가 필요한건 영어 + 숫자 이기 때문에 위의 배열을 순회하면서 요소들을 조합해준다
3. 출력한다.
for (int i = 0; i < seats.length; i++) {
for (int j = 0; j < seats[i].length; j++) {
System.out.println(seats[i][j] + " ");
}
System.out.println();
}
4. 전체 코드
public class test {
public static void main(String[] args) {
String[][] seats = new String[10][15];
String[] eng = {"A","B","C","D","E","F","G","H","I","J"};
for (int i = 0; i < seats.length; i++) {
for (int j = 0; j < seats[i].length; j++) {
seats[i][j] = eng[i] + (i + 1);
}
}
for (int i = 0; i < seats.length; i++) {
for (int j = 0; j < seats[i].length; j++) {
System.out.println(seats[i][j] + " ");
}
System.out.println();
}
}
}
4. 추가 : 아스키 코드
아스키 코드는 미국 표준 코드이다.
char c = 'A';
System.out.println(c); // A
System.out.println((int)c); // 65
c = 'B';
System.out.println(c); // B
System.out.println((int)c); // 66
c++;
System.out.println(c); // C
System.out.println((int)c); // 67
이렇게 숫자로 표현 된다.
4-1. 응용해보기
위에서 만들었던 영화 좌석표 만들기를 아스키 코드를 이용해서 다시 만들어보자
String[] eng = {"A","B","C","D","E","F","G","H","I","J"};
char ch = 'A'; // 아스키코드 넣기
이렇게 하나씩 적기 힘드니까 아스키 코드로 하나씩 증가 시키면 되지 않을까.
public class test {
public static void main(String[] args) {
String[][] seats = new String[10][15];
char ch = 'A';
for (int i = 0; i < seats.length; i++) {
for (int j = 0; j < seats[i].length; j++) {
seats[i][j] = String.valueOf(ch) + (i + 1);
} // 아스키 코드 집어넣기
ch++
}
for (int i = 0; i < seats.length; i++) {
for (int j = 0; j < seats[i].length; j++) {
System.out.println(seats[i][j] + " ");
}
System.out.println();
}
}
}
문자열 A를 넣어주고 ++로 B, C, D가 나오도록 계속 증가 시켜주면 된다. 아스키 코드는 숫자 취급을 당하는듯 하다. 그래서 String.valueOf() 로 형변환을 해주었다. 이것에 대한것은 연구 후에 더 자세히 적도록 하겠다.