ABOUT ME

-

Today
-
Yesterday
-
Total
-

Post Calendar

«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
  • Java Study [2022-08-08] - 객체지향프로그래밍(다차원 배열, ArrayList 클래스)
    백엔드 2022. 8. 10. 01:06

    📌 Java Study

    🔸 2022-08-08 월요일

    [배열과 ArrayList]

    1. 다차원 배열

    • 2차원 이상의 배열

    • 지도, 게임, 평면이나 공간을 구현할 때 사용

    • int [][] arr = new int [2][3]

      • int : 자료형
      • arr : 배열 이름
      • [2] : 행 개수
      • [3] : 열 개수

        int [][] arr = {{1, 2, 3}, {4, 5, 6}};
    
        System.out.println(arr.length);            // 2
        System.out.println(arr[0].length);      // 3
        System.out.println(arr[1].length);      // 3

        int [][] arr = {{1, 2, 3}, {4, 5, 6}};
    
        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();
        1 2 3
        4 5 6

    • 2차원 배열을 이용할 때, for 문 중첩으로 사용하는 경우가 많음

    • 3차원은 for 문이 3개(면 - 행 - 열)

    • 가장 바깥이 가장 큰 공간을 의미


    2. ArrayList 클래스

    • 자바에서 제공되는 객체 배열이 구현된 클래스

    • 객체 배열을 사용하는데 필요한 여러 메서드들이 구현되어 있음

    • 주요 메서드

    메서드 설명
    boolean add(E e) 요소 하나를 배열에 추가합니다. E는 요소의 자료형을 의미합니다.
    int size() 배열에 추가된 요소 전체 개수를 반환합니다.
    E get(int index) 배열의 index 위치에 있는 요소 값을 반환합니다.
    E remove(int index 배열의 index 위치에 있는 요소 값을 제거하고 그 값을 반환합니다.
    boolean isEmpty() 배열이 비어 있는지 확인합니다.

        ArrayList<String> list = new ArrayList<String>();
    • <String>에 어떠한 클래스를 배열의 요소로 사용할 지 지정

        ArrayList<String> list = new ArrayList<String>();
    
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
    
        for(int i = 0; i < list.size(); i++) {
            String str = list.get(i);
            System.out.println(str);
        }
    
        for( String s : list) {
            System.out.println(s);
        }

        ArrayList list = new ArrayList();
    • 무엇을 쓸 것인지 정해야됨, for 문에 오류 발생
        ArrayList list = new ArrayList();
    
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
    
        for(int i = 0; i < list.size(); i++) {
            String str = (String)list.get(i);
            System.out.println(str);
        }
    
        for( Object s : list) {
            System.out.println(s);
        }
    • ArrayList의 생성자에서 String을 지정하지 않으면 오류 발생

    • String str = (String)list.get(i); => String 타입 적어줘야함

    • for( Object s : list) => 반환이 object로 되는데, object는 모든 클래스의 최상위 클래스이자, String을 지정하지 않으면 object 형태로 들어감

    • 따라서, ArrayList 사용 시 어떤 타입의 객체로 배열을 만들 것인지 지정하는 것이 바람직


    3. 학생의 수강과목 학점 출력하기

    • Heo 학생은 두 과목을 수강하고, Kim 학생은 세 과목을 수강합니다. 각 학생의 학점과 총점을 다음과 같이 출력해봅시다. Student 클래스에 ArrayList 멤버변수를 하나 가지고 각 학생이 수강하는 과목을 관리하도록 합니다.

    • 과목이 되는 Subject클래스를 만들고, Student 클래스 내에 subjectList를 배열로 유지, Subject가 추가 될 수 있도록 addSubject 메서드 제공

    • 전체 정보를 볼 수 있는 showStudentInfo() 제공


        Student studentHeo = new Student(1001, "Heo");
    
        studentHeo.addSubject("국어", 100);
        studentHeo.addSubject("수학", 100);
    
        Student studentKim = new Student(1002, "Kim");
    
        studentKim.addSubject("국어", 95);
        studentKim.addSubject("수학", 90);
        studentKim.addSubject("영어", 80);
    
        studentHeo.showStudentInfo();
        System.out.println("=================================");
        studentKim.showStudentInfo();

    🔖 Eclipse 실습

    day13


    🔖 Eclipse 출력 Console

    day13_console1

    day13_console2

    day13_console3

    댓글

Designed by Tistory.