Today I Learned-19
자바프로그래밍 - 6
- 제네릭(generic)
- Collection 인터페이스
- Map 인터페이스
컬렉션 프레임워크 - 1. 제네릭(Generic)
- 제네릭 프로그래밍?
- 하나가 아닌, 여러 참조 자료형을 사용하도록 프로그래밍 하는 것
- 여러 참조 자료형이 쓰일 곳에, 특정 자료형 지정 안한채로 정의
이후, 클래스 사용할 때 실제 사용할 자료형 지정!
- 제네릭 클래스 정의
- ex.
public class ClassName<T>
<T>
= 제네릭 클래스- 각 메서드에서 해당 자료형 필요한 부분에 ‘T’문자 사용해서 구현
- ex.
- 참고!
용어 | 설명 |
---|---|
ClassName<T> |
제네릭 자료형, 매개변수화된 자료형 |
T |
대입된 자료형 |
- 제네릭 메서드
- 매개변수화된 제네릭을, 선언부 or 매개변수로 사용한 메서드
- 매개변수화된 제네릭을, 선언부 or 매개변수로 사용한 메서드
컬렉션 프레임워크 - 2. 컬렉션 프레임워크
- 컬렉션 프레임워크란,
- 자바에 미리 구현하여 java.util 패키지에서 제공하는 자료구조
자료구조 -> 프로그램 실행 중 메모리에 자료유지/관리를 위해 사용
- Collection 인터페이스와 Map 인터페이스로 구성
- 자바에 미리 구현하여 java.util 패키지에서 제공하는 자료구조
- 인터페이스
- 자바 컬렉션 프레임워크 내 여러 인터페이스 정의되어 있음
- 각 인터페이스의 특성과 활용법을 알면 개발 목적에 맞게 사용 가능
- Collection 인터페이스
- List 인터페이스: 순차 자료 관리
순서 있음, 중복 허용
- Set 인터페이스: 집합 자료 관리
순서 무관, 중복 불가
- List 인터페이스: 순차 자료 관리
- Map 인터페이스
- 한 쌍(key-value)으로 구성된 자료 관리에 유용
- 검색용 자료구조
key를 가지고, value 검색
컬렉션 프레임워크 - 3. List 인터페이스
- ArrayList 클래스
- 객체 배열을 구현한 클래스
- ArrayList 사용을 위해선 import문 필요 (자동 생성됨?)
import java.util.ArrayList
- ArrayList와 Vector 클래스
- 두 클래스 모두 배열을 구현한 클래스
- 차이점은 ‘동기화(synchronization) 지원 여부’
- 동기화: 두 개 이상의 ‘스레드’가 동시에 사용될 때 실행 순서를 정리(오류방지)
- 스레드: ‘작업단위’를 의미, 메서드에서 프로그램을 실행하기 위해 생성
- LinkedList 클래스
- 자료변동(삽입, 삭제)가 많을 경우 사용
컬렉션 프레임워크 - 4. Set 인터페이스
- 집합 자료 구조
- 순서 상관없이, 중복 허용하지 않을 경우에 사용
- Iterator
- 순서가 없는 Set인터페이스에서는 get(i) 메서드 사용 불가..
- ‘Iterator’를 통해 Collection의 모든 요소를 조회!
- HashSet 클래스
자료 중복 허용X, 출력 결과값 순서X
- TreeSet 클래스
- 자료 중복 허용X, 출력 결과값 정렬
이진 트리(binary tree)
를 사용해 정렬 구현
- 자료 중복 허용X, 출력 결과값 정렬
컬렉션 프레임워크 - 5. Map 인터페이스
- 한 쌍(key-value)으로 이루어진 객체를 관리
- key값은 유일
- value값은 중복 가능
- HashMap 클래스
- key값이 정해지면, 해시 방식으로 자료 저장
- TreeMap 클래스
- key값에 의해 정렬
과제, ~5/27(금)까지 제출 (되도록 5/16(월)까지는 마무리하도록)
범위: 책 -> p.387~447(12단원) 까지
- 복습/연습문제
- ‘1분 복습’, ‘연습 문제’의 문제&답, ‘타이핑’
- ‘나혼자 코딩’, ‘타이핑, 디버그’
제출파일: 이형록_220504_과제제출.txt
- 실습코드
- 이클립스에 타이핑 (패키지, 클래스 동일하게)
제출파일: 이형록_220504_실습코드.txt (이클립스에서 작성한 내용을 복사)
- 이클립스에 타이핑 (패키지, 클래스 동일하게)
- 보충자료 확인
다음 강의 준비
nice!!!!