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();