본문 바로가기
Language/JAVA

[JAVA] 10일차. 다차원 배열(3), ArrayList 클래스(4)

by 전전긍긍 2022. 2. 27.

👀2022020123 공부기록

 

📍본 포스팅은 인프런-Do it! 자바 프로그래밍 입문 강의를 바탕으로 작성함을 알립니다.

 

[무료] Do it! 자바 프로그래밍 입문 - 인프런 | 강의

비전공자, 문과생도 무릎을 ‘탁!’ 치며 이해하는 20년 경력 명강사의 자바 강의!, - 강의 소개 | 인프런...

www.inflearn.com


19. 다차원 배열(3)

📍다차원 배열 : 2차원 이상의 배열 (평면이나 공간을 구현할 때 많이 사용 된다.)

 

- 이차원 배열의 선언과 구조

int[][] arr =  new int[2][3]; //행 개수, 열 개수

 

- 선언과 초기화

int[ ][ ] arr = {{1, 2, 3}, {4, 5, 6}};

- 2차원 배열 선언과 초기화 예제


20. ArrayList 클래스(4)

📍ArrayList 클래스 : 자바에서 제공되는 객체 배열이 구현된 클래스이다. 가장 많이 사용하는 객체 배열 클래스로, 여러 메서드와 속성 등 사용하여 객체 배열을 편리하게 관리할 수 있다.

(기존 배열은 길이를 정하여 선언하므로 사용 중 부족한 경우, 다른 배열로 복사하는 코드를 직접 구현해야 함. 중간의 요소가 삭제되거나 삽입되는 경우도 나머지 요소에 대한 조정하는 코드를 구현해야 함.)

즉, 정해진 크기로 시작하기 떄문에, 새로 배열을 만들고 기존 원소들을 복사하는 번거로움. 이런 번거로움을 함수로 처리하는 클래스.

 

📍ArrayList 클래스 주요 메서드 : 요소를 추가하거나 제거할 때 각 내부에서 코드가 모두 구현되어 있으므로 배열을 직접 선언하여 사용하는 것보다 편리함

사용할 객체를 E위치에 넣고 ArrayList 메서드를 활용하여 추가하거나 참조할 수 있음.

ArrayList<E> 배열이름 = new ArrayList<E>();

Student 메소드

package arraylist;

import java.util.ArrayList;

public class Student {

	private int studentID;
	private String studentName;
	private ArrayList<Subject> subjectList;
	
	public Student (int studentID, String studentName) {
		this.studentID = studentID;
		this.studentName = studentName;
		
		subjectList = new ArrayList<Subject>();
	}
	
	public void addSubject(String name, int score) {
		Subject subject = new Subject();
		subject.setName(name);
		subject.setScorePoint(score);
		
		subjectList.add(subject);
	}
	
	public void showStudentInfo() {
		
		int total = 0;
		for(Subject subject : subjectList) {
			total += subject.getScorePoint();
			
			System.out.println("학생" + studentName + "님의 " + subject.getName() + " 과목의 성적은 "
					+ subject.getScorePoint() + "점 입니다.");
		}
		System.out.println("학생" + studentName + "님의 총점은 " + total + "입니다.");
	}
}

Subject 메소드

package arraylist;

public class Subject {

	private String name;
	private int scorePoint;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getScorePoint() {
		return scorePoint;
	}
	public void setScorePoint(int scorePoint) {
		this.scorePoint = scorePoint;
	}
}

main