Computer Language/JAVA

[240615] Array

westwith 2024. 6. 15. 19:11
728x90

0. 김영한님의 자바 강의 듣는 공부 일지

강의 주소 : 

 

[지금 무료] 김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음 | 김영한 - 인프런

김영한 | 프로그래밍에 처음 입문하는 분들을 위한 자바 강의입니다. 코드를 따라하면서 손쉽게 자바를 배울 수 있습니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 자바 입문[사

www.inflearn.com


1. 배열

  • 배열 시작
package array; // 패키지 선언

public class Array1 { // 클래스 Array1 시작
    public static void main(String[] args) { // main 메서드 시작
        int student1 = 90;
        int student2 = 80;
        int student3 = 70;
        int student4 = 60;
        int student5 = 50;

        System.out.println("학생1 점수 : " + student1);
        System.out.println("학생2 점수 : " + student2);
        System.out.println("학생3 점수 : " + student3);
        System.out.println("학생4 점수 : " + student4);
        System.out.println("학생5 점수 : " + student5);


    } // main 메서드 끝
} // 클래스 Array1 끝
---
학생1 점수 : 90
학생2 점수 : 80
학생3 점수 : 70
학생4 점수 : 60
학생5 점수 : 50
  • 배열의 선언과 생성
package array; // 패키지 선언

public class Array1Ref1 { //클래스 Array1Ref1 시작
    public static void main(String[] args) { // main 메서드 시작
        int[] students; //배열 변수 선언
        students = new int[5];

        // 변수 값 대입
        students[0] = 90;
        students[1] = 80;
        students[2] = 70;
        students[3] = 60;
        students[4] = 50;

        // 변수 값 사용
        System.out.println("학생1 점수 :" + students[0]);
        System.out.println("학생2 점수 :" + students[1]);
        System.out.println("학생3 점수 :" + students[2]);
        System.out.println("학생4 점수 :" + students[3]);
        System.out.println("학생5 점수 :" + students[4]);

    } // main 메서드 끝
} // 클래스 Array1Ref1 끝
---
학생1 점수 :90
학생2 점수 :80
학생3 점수 :70
학생4 점수 :60
학생5 점수 :50
  • 배열 리펙토링
package array; // 패캐지 선언

public class Array1Ref2 { // 클래스 Array1Ref2 시작
    public static void main(String[] args) { // main 메서드 시작
        int[] students; // 배열 변수 선언

        students = new int[5]; // 배열 생성

        // 변수 값 대입
        students[0] = 90;
        students[1] = 80;
        students[2] = 70;
        students[3] = 60;
        students[4] = 50;

        // 변수 값 사용
        for (int i = 0; i < students.length; i++) {
            System.out.println("학생" + (i + 1) + "점수 :" + students[i]);
        }

    } // main 메서드 끝
} // 클래스 ArrayRef2 끝
---
학생1점수 :90
학생2점수 :80
학생3점수 :70
학생4점수 :60
학생5점수 :50
package array; // 패키지 선언

public class Array1Ref3 { // 클래스 Array1Ref3 시작
    public static void main(String[] args) { // main 메서드 시작
        int[] students;
        students = new int[]{90, 80, 70, 60, 50}; // 배열 생성과 초기화

        for (int i = 0; i < students.length; i++) {
            System.out.println("학생" + (i+1) + "점수 : " + students[i]);
        }
    } // main 메서드 끝
} // 클래스 Array1Ref3 끝
---
학생1점수 : 90
학생2점수 : 80
학생3점수 : 70
학생4점수 : 60
학생5점수 : 50

 


2. 2차원 배열

package array; // 패키지 선언

public class ArrayDi0 { // 클래스 ArrayDi0 시작
    public static void main(String[] args) { // main 메서드 시작
        // 2X3 2차원 배열을 만든다.
        int[][] arr = new int[2][3]; // 행(row), 열(column)

        arr[0][0] = 1; //0행, 0열
        arr[0][1] = 2; //0행, 1열
        arr[0][2] = 3; //0행, 2열
        arr[1][0] = 4; //1행, 0열
        arr[1][1] = 5; //1행, 1열
        arr[1][2] = 6; //1행, 2열

        // 0행 출력
        System.out.print(arr[0][0] + " "); // 0열 출력
        System.out.print(arr[0][1] + " "); // 0열 출력
        System.out.print(arr[0][2] + " "); // 0열 출력
        System.out.println(); // 한 행이 끝나면 라인을 변경한다.


        // 1행 출력
        System.out.print(arr[1][0] + " "); // 0열 출력
        System.out.print(arr[1][1] + " "); // 0열 출력
        System.out.print(arr[1][2] + " "); // 0열 출력
        System.out.println(); // 한 행이 끝나면 라인을 변경한다.

    } // main 메서드 끝
} // 클래스 ArrayDi0 끝
---
1 2 3  // 0행 출력 [0][0] [0][1] [0][2]
4 5 6  // 1행 출력 [1][0] [1][1] [1][2]
  • 리펙토링1 - 구조개선 : 행 출력 반복
package array; // 패키지 선언

public class ArrayDi1 { // 클래스 ArrayDi1 시작
    public static void main(String[] args) { // main 메서드 시작
        // 2X3 2차원 배열을 만든다.
        int[][] arr = new int[2][3]; // 행(row), 열(column)

        arr[0][0] = 1; //0행, 0열
        arr[0][1] = 2; //0행, 1열
        arr[0][2] = 3; //0행, 2열
        arr[1][0] = 4; //1행, 0열
        arr[1][1] = 5; //1행, 1열
        arr[1][2] = 6; //1행, 2열

        for (int row = 0; row < 2; row++) {
            System.out.print(arr[row][0] + " "); // 0열 출력
            System.out.print(arr[row][1] + " "); // 1열 출력
            System.out.print(arr[row][2] + " "); // 2열 출력
            System.out.println(); // 한 행이 끝나면 라인을 변경함
        }

    } // main 메서드 끝
} // 클래스 ArrayDi1 끝
---
1 2 3 
4 5 6
  • 리펙토링1 - 구조개선 : 열 출력 반복
package array; // 패키지 선언

public class ArrayDi2 { // 클래스 ArrayDi2 시작
    public static void main(String[] args) { // main 메서드 시작
        // 2X3 2차원 배열을 만든다.
        int[][] arr = new int[2][3]; // 행(row), 열(column)

        arr[0][0] = 1; //0행, 0열
        arr[0][1] = 2; //0행, 1열
        arr[0][2] = 3; //0행, 2열
        arr[1][0] = 4; //1행, 0열
        arr[1][1] = 5; //1행, 1열
        arr[1][2] = 6; //1행, 2열

        for (int row = 0; row < 2; row++) {
            for (int colume = 0; colume < 3; colume++) {
                System.out.print(arr[row][colume] + " ");
            }
            System.out.println(); // 한 행이 끝나면 라인을 변경한다.
        }
    } // main 메서드 끝
} // 클래스 ArrayDi2 끝
---
1 2 3 
4 5 6
  • 리펙토링2 - 구조개선 : 초기화, 배열의 길이
package array; // 패키지 선언

public class ArrayDi3 { // 클래스 ArrayDi3 시작
    public static void main(String[] args) { // main 메서드 시작
        // 2X3 2차열 배열, 초기화
        int[][] arr = {
                {1, 2, 3},
                {4, 5, 6}
        };
        
        // 2차원 배열의 길이를 활용
        for (int row = 0; row < arr.length; row++) {
            for (int column = 0; column < arr[row].length; column++) {
                System.out.print(arr[row][column] + " ");
            }
            System.out.println();
        }
    } // main 메서드 끝
} // 클래스 ArrayDi3 끝
---
1 2 3 
4 5 6
  • 리펙토링2 - 구조개선 : 값 입력
package array; // 패키지 선언

public class ArrayDi4 { // 클래스 ArrayDi4 시작
    public static void main(String[] args) { // main 메서드 시작
        // 2X3 2차원 배열, 초기화
        int[][] arr = new int[4][5];

        int i = 1;
        //순서대로 1씩 증가하는 값을 입력한다.
        for (int row = 0; row < arr.length; row++ ) {
            for (int colunm = 0; colunm < arr[row].length; colunm++) {
                arr[row][colunm] = i++;
            }
        }

        // 2차원 배열의 길이를 활용
        for (int row = 0; row < arr.length; row++) {
            for (int column = 0; column < arr[row].length; column++) {
                System.out.print(arr[row][column] + " ");
            }
            System.out.println(); // 한 행이 끝나면 라인을 변경한다.
        }

    } // main 메서드 끝

} // 클래스 ArrayDi4
---
1 2 3 4 5 
6 7 8 9 10 
11 12 13 14 15 
16 17 18 19 20

3. 향상된 for문

package array; // 패키지 선언

public class EnhancedFor1 { // 클래스 EnhancedFor1 시작
    public static void main(String[] args) { // main 메서드 시작
        int[] numbers = {1, 2, 3, 4, 5};

        //일반 for문
        for (int i = 0; i < numbers.length; ++i) {
            int number = numbers[i];
            System.out.println(number);
        }

        //향상된 for문
        for (int number : numbers) {
            System.out.println(number);
        }

        //for-each 문을 사용할 수 없는 경우, 증가하는 index 값 필요
        for (int i = 0; i < numbers.length; ++i) {
            System.out.println("number" + i + "번의 결과는 " + numbers[i]);
        }


    } // main 메서드 끝
} // 클래스 EnhancedFor1 끝
---
1
2
3
4
5
1
2
3
4
5
number0번의 결과는 1
number1번의 결과는 2
number2번의 결과는 3
number3번의 결과는 4
number4번의 결과는 5

 


4. 문제풀이

 


5. 정리

 

 


<오늘의 단축키>

⭐ 한 줄 복사 (ctl + D)

⭐ psvm (public static void main)

⭐ sout (systemout.println)

 

 

728x90