-
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 실습
🔖 Eclipse 출력 Console
'백엔드' 카테고리의 다른 글
Java Study [2022-08-10] - 객체지향프로그래밍(상속 이론 및 예제 활용) (0) 2022.08.11 Java Study [2022-08-09] - 객체지향프로그래밍(ArrayList 응용 문제) (0) 2022.08.10 Java Study [2022-08-07] - 객체지향프로그래밍(객체 배열, 복사) (0) 2022.08.08 Java Study [2022-08-06] - 객체지향프로그래밍(배열 기초 이론 및 예제) (0) 2022.08.07 Java Study [2022-08-05] - 객체지향프로그래밍(static, singleton 문제 풀기) (0) 2022.08.06