Collection
Collection
List
순서가 있으며 중복을 허용하는 컬렉션
List의 종류와 특징
•
LinkedList
◦
양방향 포인터 구조로 데이터의 삽입, 삭제가 빠르다
◦
ArrayList보다 검색이 느리다
•
ArrayList
◦
단방향 포인터 구조로 데이터 순차적 접근에 강점을 가진다
◦
배열을 기반으로 데이터를 저장한다
◦
데이터의 삽입, 삭제가 느리지만 데이터 검색이 빠르다
Set
중복을 허용하지 않는 컬렉션
Set의 종류와 특징
•
HashSet
◦
인스턴스의 해시값을 기준으로 저장하기 때문에 순서를 보장하지 않는다
◦
Null값을 허용한다
◦
TreeSet보다 삽입, 삭제가 빠르다
•
LinkedHashSet
◦
입력된 순서를 보장한다
•
TreeSet
◦
데이터들이 오름차순으로 정렬된다
◦
데이터의 삽입, 삭제에는 시간이 걸리지만 검색, 정렬이 빠르다
예시
random number n개를 생성하고 중복이 되지 않은 숫자만 남기기
코드
Map
Key와 Value의 한쌍으로 이루어지는 컬렉션
Map의 종류와 특징
•
HashMap
◦
Key에 대한 중복이 없으며 순서를 보장하지 않는다
◦
Key와 Value값으로 Null을 허용한다
◦
동기화가 보장되지 않는다
◦
검색에 가장 뛰어난 성능을 가진다
•
HashTable
◦
동기화가 보장되어 병렬 프로그래밍이 가능하고 HashMap보다 처리속도가 느리다
◦
Key와 Value값으로 Null을 허용하지 않는다
•
LinkedHashMap
◦
입력된 순서를 보장한다
•
TreeMap
◦
Key값을 기준으로 오름차순 정렬되고 빠른 검색이 가능하다
◦
저장시 정렬을 하기 때문에 시간이 오래 걸린다
예시
알파벳 개수 출력하기
코드
File
예시
한글자씩 읽어오기
코드
두글자씩 읽어오기
코드
N글자 읽어오기
코드