[ 목차 ]
1. 제네릭(Generic)
클래스나 메소드에서 사용할 데이터의 타입을 컴파일시에 미리 지정하는 방법
제네릭을 사용하는 이유
- 다양한 타입의 객체의 재사용을 높일 수 있음
- 클래스에서 사용할 타입을 외부에서 사용
- 반복적인 코드, 불필요한 코드를 사용하지 않도록 함
- 강제적인 형변환을 발생시키지 않음
✔ Object 클래스
- 자바의 모든 클래스의 최상위 조상 클래스
- 모든 타입은 Object 클래스 객체화 시킬 수 있음
- 기본 데이터 타입을 객체화 시킨 래퍼타입으로 대입 받을 수 있음
2. 컬렉션 프레임워크(Collection Framework)
- 여러가지 데이터를 메모리에 쉽고 효과적으로 처리할 수 있도록 제공하는 클래스들릐 집합
- 자료구조를 구현한 클래스들의 모음
@ 자료구조 :
- 데이터를 효율적으로 관리할 수 있는 데이터 구조를 의미
- 데이터의 특성에 따라 체계적으로 구조화 함
@ 알고리즘 :
- 어떤 문제를 풀기 위한 절차 및 방법
- 어떤 믄제에 대해 입력을 넣으면 원하는 출력을 얻을 수 있도록 만드는 프로그래밍
@ List 인터페이스 :
- 순서가 있는 데이터들의 집합으로 데이터의 중복을 허용
Vector, ArrayList, Queue, Stack, LinkedList
Vector 클래스
- 동적인 길이로 여러 데이터형을 저장하기 위해 사용
- 자바 1.0부터 존재하는 레거시 클래스
- 배열과 동일하게 정주 인덱스를 이용하여 엑세스를 할 수 있음
- 동기화되어 있으며 한번에 하나의 스레드만 벡터의 메소드를 호출할 수 있음
ArrayList 클래스
- 동적인 길이로 여러 데이터형을 저장하기 위해 사용
- 배열과 동일하게 정수 인덱스를 이용하여 엑세스를 할 수 있음
- 비동기식을 사용하여 멀티 스레드를 지원(벡터와 차이점)
🎁 Iterator 인테페이스
컬렉션 프레임워크 인터페이스에서는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는
iterator() 메소드를 정의하여 각 요서에 접근하도록 설계
- 자바의 컬렉션에 저장되어 있는 요소들을 읽어오는 방법
- 컬렉션으로부터 정보를 얻어내는 방법
Iterator 장단잠
장점 : 컬렉션 프레임워크 종류에 관계없이 일관성있게 프로그래밍을 할 수 있음
단점 : size 메소드를 얻어와서 반복처리하는 것보다 속도가 좋지 못함
✔ 동기식
프로그램을 차례(순서)대로 처리
✔비동기식
여러개의 프로그램을 동시에 처리, 시간이 오래걸리면 다음 문장으로 이동 후 동작하는 방식
Queue 클래스
- FIFO( First In First Out)
- 큐의 한쪽끝을 프론트로 정하여 삭제 연산만 수행함
- 다른 한쪽끝을 리어로 정의하고 삽입 연산만 수행함
- 푸시메시지, 운영체제의 스케줄러
stack 클래스
- LIFO(Last Input First Out)
- 한쪽 끝에서만 자료를 넣고 뺼 수 있는 형식의 자료구조
- 브라우저의 뒤로가기 앞으로 가기
LinkedList 클래스
- 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식
- ArrayList에 비해 데이터의 추가나 삭제가 빠름
- 인덱스가 없기 때문에 특정 요소에 접근이 느림
- 탐색속도가 떨어짐 - 원하는 주소를 찾기위해 링크를 타고 넘어가야하기 때문에 느리다.
- 저장공간을 효율적으로 사용할 수 있다.
@ Set 인터페이스 :
- 순서가 없는 데이터 집합으로 데이터의 중벅을 허용하지 않음
HashSet, TreeSet
HashSet 클래스
- 데이터를 중복해서 저장할 수 없음(중복은 자동으로 제거)
- 저장 순서가 유지되지 않음
- 정렬을 하지 않음
- 하나의 null값을 저장할 수 있음
TreeSet 클래스
- 데이터를 중복해서 저장할 수 없음(중복은 자동으로 제거)
- 저장 순서가 유지되지 않음
- 하나의 null값을 저장할 수 있음
- 오름차순으로 정렬
- 이진 탐색 트리 구조로 이루어져 있음
✔ 이진 탐색 트리
추가, 삭제에는 시간이 걸리지만 정렬, 검색에 높은 성능을 자랑하는 자료구조
@ Map 인터페이스 :
- 키와 값을 한 쌍으로 이루어지는 데이터의 집합으로 순서가 없고, 키는 중복으로 허용하지 않지만 값운 중복으로 허용
과제.
학생 관리 프로그램을 만들어보자.
메뉴
1. 학생입력 -----> 학번, 이름, 나이, 연락처
2. 학생리스트 -------> 학번으로 오름차순
3. 학생검색
4. 학생삭제
5. 종료
'Java > Java' 카테고리의 다른 글
자바 File 다루기 (1) | 2022.10.07 |
---|---|
자바 예외처리 (0) | 2022.10.06 |
국비지원 자바 복습 8(래퍼, 추상 클래스, 인터페이스, static) (1) | 2022.10.05 |
국비지원 자바 복습 7 (객체의 배열, Object, 상속, 업/다운 캐스팅) (1) | 2022.10.04 |
국비지원 자바 복습 6 (메소드, 메인메소드, opp, 클래스) (0) | 2022.10.04 |