review
ArrayList 출력 방법
shiherlis
2022. 9. 4. 13:45
기본 선언
public class Student {
private String studentName;
private int studentId;
ArrayList<Book> booklist;
요구사항: booklist (arraylist)에 추가된 book의 제목을 다음과 같은 형식으로 출력 할 것.
studentName 학생이 읽은 책은 : booklist.book(0), booklist.book(1), booklist.book(2) 입니다.
showInfo 1: 향상된 for 문 (풀이)
public void showInfo() {
System.out.print(this.studentName + "학생이 읽은 책은 ");
for (Book book : booklist) {
System.out.print(book.getTitle() + ", ");
}
System.out.print("입니다.");
}
- 향상된 for문을 이용하여 출력
- 마지막 book 다음 , 가 출력되는 단점
showInfo 2 : if for 문 (내 풀이)
int index;
public void showInfo2() { // index 선언 해준 후 arraylist.get(index).getter
System.out.print(this.studentName + "학생이 읽은 책은 ");
for (int i = 0; i < booklist.size(); i++) {
if (i != booklist.size() - 1)
System.out.print(booklist.get(index).getTitle() + ", ");
else
System.out.print(booklist.get(index).getTitle());
}
System.out.print("입니다.");
}
- 마지막 , 가 출력되지 않도록 하기 위해서 if 구문을 이용하여 조건 지정
- i 가 0부터 시작하기 때문에 [ booklist.size() - 1 ] arraylist 사이즈에 1을 감해줌
- booklist. get(i) 를 해줬을 때, booklist i번의 주소값이 반환됨
- 1안) 따라서 index를 선언 해준 후 , booklist.get(index).getTitle() 을 통해 해당 인덱스 주소값에 할당된 값(title)을 getter를 이용하여 가져옴
- 2안) 리뷰하면서 생각남
어차피 인덱스번호는 i 와 동일하기 때문에 index를 따로 선언해 줄 필요 없이 i를 넣어도 같은 값이 출력됨
System.out.print(booklist.get(i).getTitle());
showInfo 3 : 향상된 for if 문 (다른 풀이)
public void showInfo3() {
System.out.print(this.studentName + "학생이 읽은 책은 ");
int count = 0;
for (Book book : booklist) {
count++;
if(booklist.size() == count)
System.out.print(book.getTitle());
else
System.out.print(book.getTitle()+", ");
}
System.out.print("입니다.");
}
- count 변수 선언을 통해 booklist.size 와 같은지 비교 해줄 변수 생성
- size와 count 가 같아졌을 때 , 없는 구문 출력