2차원 배열 사용하기
다차원 배열
- 이차원 이상으로 구현된 배열
- 평면 - 이차원 배열)이나 공간 - 삼차원 배열 )을 활용한 프로그램 구현
이중 for문
- 행이 기준이고 열을 돌리는 것으로 이해
- 바깥 for - 행의 갯수
- 안쪽 for - 열의 갯수
- arr [i]. length 출력 3 / 4
- 의미는 전체 요소들의 길이 X,
- 행의 길이 O
객체 배열에서도 똑같이 적용 // 자리만 차지하고 // new 써서 입력해서 사용
객체 배열을 구현한 클래스 ArrayList
java.util 패키지에서 제공되는 ArrayList
- 기존의 배열 선언과 사용 방식은 배열의 길이를 정하고 요소의 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사해야 했음
- 배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 대한 구현을 해야 했음
- 그러나 ArrayList 메서드를 활용하여 자동으로 해줌
- ArrayList는 객체 배열을 좀 더 효율적으로 관리하기 위해 자바에서 제공해 주는 클래스
- 이미 많은 메서드들이 최적의 알고리즘으로 구현되어 있어 각 메서드의 사용 방법만 익히면 유용하게 사용할 수 있음
ArrayList의 주요 메서드
ArrayList를 활용한 간단한 예제
②import로 위치 알려줌
①ArrayList 선언
③add-new로 입력
④for - library.size 조건 해서 출력
사용법 f1 해서 여러 가지
사용법 익혀보기!
f1 도움말
헬퍼 중에도 Method부분
어떤 형식으로 쓰고
어떤 값을 반환해주는지
등등을 귀찮더라도
정확히 찾아보고 익혀보기!
ArrayList를 활용한 간단한 성적 산출 프로그램
예제 시나리오
1001학번 Lee와 1002학번 Kim, 두 학생이 있습니다.
Lee 학생은 국어와 수학 2과목을 수강했고, Kim 학생은 국어, 수학, 영어 3 과목을 수강하였습니다.
Lee 학생은 국어 100점, 수학 50점입니다.
Kim 학생은 국어 70점, 수학 85점, 영어 100점입니다.
Student와 Subject 클래스를 만들고 ArrayList를 활용하여 두 학생의 과목 성적과 총점을 출력하세요
①Subject 클래스 만들어서 구성
②Student 클래스에 ArrayList 선언
③학생 / 과목 생성자와 출력문 선언
④test 클래스 작성 후 확인
① 2가지 속성으로~
private 이므로
get/ set 해서 쓸 수 있게 해 줌
ArrayList 임포트
②Student 클래스에 ArrayList 선언
ArrayList 선언
③학생 / 과목 생성자와 출력문 선언
학생 생성자
과목 추가 생성자
- new로 추가!
- set으로 가져와서 입력!
- subjectlist 배열에 추가
출력문
- get으로 subject
- 이름과 점수 불러온다.
④test 클래스 작성 후 확인
타입형 Student 클래스에 new
addSubject 생성자 사용 과목 추가
출력 생성자 불러서 사용
출력 값 확인
GOOD:)
복습 / 연습 방법 추천은 테스트 코드만 남겨놓고 오류 안 나게 만들어보기!
review
2차원 배열과 array list
2차원 배열을 활용하면 오목게임이나 테이블 표
만들기도 가능할 거 같다.
array list 메서드를 활용하면
배열의 요소를 추가하거나 삭제할 때
자동으로 배열을 조절해줘서 편하다고 한다.
직접 배열의 위치를 당길지 뒤로 미룰지 써주는 거보다
자동으로 해준다니 편하겠지?ㅎㅎ
Array List를 활용한 성적 산출 프로그램
예제를 따라 해 보았는데
몇 번 더 따라 해 보고 직접 해보고 복습해 봐야지
완벽히 이해할 수 있을 거 같다.
학생 클래스와 과목 클래스
학생의 과목 관련 속성 추가 시 만들어놓은 과목 배열로 대입
조건에 맞게 출력
크게 생각하면 이 정도인 것 같은데..
배열이라는 것에 낯설었고,
과목 추가할 때 설정은 set으로, 값을 가져올 때는 get으로
맞는 개념도 다시 한번 체크해봐야겠다.
후우 NOT GOOD :)
'JAVA 웹 개발 패키지 - 패스트캠퍼스 > Chapter2' 카테고리의 다른 글
배열 ( array ) - 기본자료형 / 객체 (0) | 2021.12.30 |
---|---|
Static / Static 응용 - 싱글톤 패턴 ( singleton pattern ) (0) | 2021.12.28 |
캡슐화(encapsulation) / this가 하는 일 (0) | 2021.12.26 |
참조 자료형 변수 / 접근 제어 지시자 / 정보 은닉 (0) | 2021.12.26 |
복습하기 - 객체지향, 함수, 생성자 (0) | 2021.12.26 |