Java/java
3주차 - 1차원 배열, 2차원 배열
우젼
2022. 9. 2. 18:37
배열의 선언 예시
int[] ints1 = new int[5]; // ints1 가 5개의 공간을 가짐을 선언
System.out.println("ints1 : " + ints1);
int[] ints2 = new int[] {1,2,3,4,5}; ints2 가 5개의 공간을 가짐과 그 값들을 초기화
System.out.println("ints2 : " + ints2);
int[] ints3 = {1,2,3,4,5}; // 선언과 초기화를 같이 할때에는 new 를 생략해도 무방하다.
System.out.println("ints3 : " + ints3);
char[] chars1 = new char[5];
System.out.println("chars1 : " + chars1);
char[] chars2 = new char[] {'a','b','c'};
System.out.println("chars2 : " + chars2);
String[] str1 = new String[5];
System.out.println("str1 : " + str1);
String[] str2 = new String[] {"111","222","333"};
System.out.println("str2 : " + str2);
System.out.println(chars2);
// 다른 것들과 다르게 Char[] 만큼은 print에서 바로 출력이 된다
아래는 배열의 인덱스에 값을 하나씩 넣는 예시
int[] arr = new int[5];
arr[0]=100;
arr[1]=200;
arr[2]=300;
arr[3]=400;
arr[4]=500;
// 배열의 인덱스는 0번부터 시작한다.
배열과 for문을 응용해서 배열의 값을 오름차순, 내림차순으로 정리하는 예제
int[] arr = { 4, 8, 2, 7, 6 };
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
// if (arr[i] < arr[j]){ // 오름차순으로 정리하고 싶을때의 조건
if (arr[i] > arr[j]){ // 내림차순으로 정리하고 싶을때의 조건
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
System.out.print("정렬된 데이터 : ");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
2차원 배열의 예시
2차원 배열은 엑셀처럼 표의 형식을 가진다고 생각하면 이해가 쉽다.
아래는 2차원 배열의 생성과 값들의 초기화를 하는 방법
int arr[][] = new int [][] {
{10,20,30},
{40,50,60},
{70,80,90}
};
System.out.print(arr[0][0] + " ");
System.out.print(arr[0][1] + " ");
System.out.print(arr[0][2] + " ");
System.out.println();
System.out.print(arr[1][0] + " ");
System.out.print(arr[1][1] + " ");
System.out.print(arr[1][2] + " ");
System.out.println();
System.out.print(arr[2][0] + " ");
System.out.print(arr[2][1] + " ");
System.out.print(arr[2][2] + " ");
배열의 값들이 규칙을 가지고 있을때에는 반복문을 이용할수도있다. 이건 1차원 배열과 크게 다르지 않다
int[][] arr2 = new int[3][5];
int data=1;
for(int i =0;i<arr2.length;i++) { // 행(줄)
for(int j =0;j<arr2[i].length;j++) { //열(칸)
arr2[i][j] = data++;
}
}
for(int i =0;i<arr2.length;i++) {
for(int j = 0;j<arr2[i].length;j++) {
System.out.print(arr2[i][j] + " ");
}
System.out.println();