| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 케이무브 #k-move #kmove #해외취업 #일본취업
- ISFP
- 일본어
- 새해목표
- 일본어공부법
- 정보처리기사 #정보처리기사필기 #IT비전공자 #IT취준생 #취업준비생
- 언프리티랩스타3
- 한국힙합
- 일어일문학과
- 일상기록
- 온라인영어회화 #성인영어회화 #bys #beyourself #byssupporters
- 2026년 #새해목표 #20대후반 #정보처리기사 #일본취업 #부담내려놓기
- 공부팁
- INFP
- 연애만화
- 개인블로그
- 명대사
- 인스타그램
- 좋아하는음악
- 일본유학생
- 고등래퍼1
- 일본교환학생
- 일본어공부
- 대학생
- 정보처리기사 #정처기 #IT취준생 #시험공부
- 김견강
- 인간관계
- 2023년
- 취미생활
- Today
- Total
일단 이것저것 해 보는 블로그
(Do it! 자바, 4주차-4) 12장 되새김 문제 풀이(작성 중) 본문
사용한 학습 자료: 박은종, 2025, <Do it! 자바 프로그래밍 입문 [개정판]>, 이지스퍼블리싱.
https://ebook-product.kyobobook.co.kr/dig/epd/ebook/E000010942415
Do it! 자바 프로그래밍 입문 [개정판] | 박은종 저자
eBook Do it! 자바 프로그래밍 입문 [개정판] | 3만 6천 부 이상 팔린 초판의 성공에 힘입어 좀 더 입문자의 눈높이에 맞춰 내용을 수정하고 최신 개발 트렌드에 맞게 개정판을 출간했습니다. 저자인
ebook-product.kyobobook.co.kr
01. 컬렉션 프레임워크
-> 자료 구조를 사용하기 편리하도록 자바에서 제공하는 라이브러리
02. 제네릭 프로그래밍
-> 클래스에서 여러 자료형을 사용할 때 자료형을 명시하지 않고 자료형을 의미하는 문자로 선언한 후 실제 클래스를 생성할 때 자료형을 명시하는 프로그래밍 방식
03. Iterator (인터페이스)
-> Collection 인터페이스를 구현한 클래스를 순회하기 위해 사용하는 인터페이스
04. TreeSet을 사용할 때 Comparable 인터페이스를 구현해야 하는 이유
-> TreeSet의 값(노드)을 어떤 기준으로 비교해 트리로 정렬해야 하는지 정의하기 위해
-> 구체적으로 정의(구현)하지 않으면 오류 발생
Exception in thread "main" java.lang.ClassCastException: 클래스 이름 caannot be cast to class ~Comparable ~
05. (중요) 학번이 중복되는 학생 정보를 HashSet에 추가하지 않기 위해, Student 클래스 내에 hashCode( )와 equals( ) 메서드 재정의 필요
- hashCode( ) 재정의 예시
// hashCode() 재정의
@Override
public int hashCode( ) {
return studentId; // 학번 값을 반환하도록 재정의
}
- equals( ) 재정의 예시
// equals() 재정의
@Override
public boolean equals(Object obj) {
if (obj instanceof Student) { // 매개변수가 Student형인지 확인
Student student = (Student) obj; // 맞으면 Student 변수에 매개변숫값 대입
if (this.studentId == student.studentId) { // 두 학번 값이 같으면
return true;
else
return false;
}
return false;
}
- 문제에서 알 수 있는 조건
* Student 클래스에 필요한 속성(변수): 학번(int studentId), 학생 이름(String studentName)
-> (수정) 예제 코드에 학번이 "숫자"(문자열) 형태로 작성되어 있으므로 studentId(학번)은 우선 String형으로 선언
* 구현할 기능(메서드)
1) 생성자 Student( ): 학번과 학생 이름을 매개변수로, 두 값을 반환받음.
2) 재정의할 메서드: hashCode() (학번 값을 반환해), equals() (학번의 중복 여부를 체크하고 참 혹은 거짓 반환)
-> 학번이 중복되는 객체는 HashSet에 추가하지 않기 위함.
toString() (학생 정보의 출력 형태 재정의)
* 출력 결과 예시
100:홍길동, 200:강감찬, 300:이순신, 400:정약용
- 최종 소스 코드
package collectionframework.question;
public class Student {
String studentId;
String studentName;
public Student(String studentId, String studentName) {
this.studentId = studentId;
this.studentName = studentName;
}
@Override
public int hashCode() {
return Integer.parseInt(studentId); // Integer.parseInt(매개변수): 문자열 타입의 숫자를 정수로 변환
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Student) {
Student student = (Student) obj;
if (this.studentId == student.studentId) {
return true;
}
else
return false;
}
return false;
}
@Override
public String toString() {
return studentId + ":" + studentName;
}
}
* hashCode() 메서드의 Integer.parseInt(String studentId)란? 문자열(String) 형태의 정수를, 정수형(int)으로 변환하는 메서드
참고: 저자 풀이 코드(깃허브) 및
거신, [자바 프로그래밍 기초] 5. Integer.parseInt(String타입의 값), [자바 프로그래밍 기초] 5. Integer.parseInt(String타입의 값) (260131 최종접속)
06.
07. 409쪽의 예제 코드 중, Powder(powder)만 Plastic(plastic)으로 바꿔주면 OK.
GenericPrinter<Plastic> plasticPrinter = new GenericPrinter<Plastic>( );
plasticPrinter.setMaterial(new Plastic( ));
Plastic plastic = powderPrinter.getMaterial( ); // 형 변환 하지 않음.
08.
09.
'2026 > Do it Java 스터디(2026.01.~02.)' 카테고리의 다른 글
| (Do it! 자바, 5주차-1) 14장 되새김 문제 풀이 (0) | 2026.02.06 |
|---|---|
| (Do it! 자바, 5주차) 내부 클래스와 관련 개념(람다식, 스트림) (260202~260208) (0) | 2026.02.02 |
| (Do it! 자바, 4주차-3) getClass() 메서드 오류에 대해: non-static method getClass() cannot be referenced from a static context (0) | 2026.01.28 |
| (Do it! 자바, 4주차-2) 10장 되새김 문제 풀이(작성 중) (0) | 2026.01.28 |
| (Do it! 자바, 4주차-1) 11장 되새김 문제 풀이(작성 중) (0) | 2026.01.28 |