반응형
Collection 정의
- 자바에서 자료 구조를 구현한 클래스
- 자료 구조란 자료를 저장하기 위한 구조
- 대부분의 프로그램은 자료를 저장하기 때문에 필요에 따라서 적절한 자료 구조를 사용할지를 결정
- 자료구조의 종류 : 리스트(list), 스택(stack), 큐(queue), 집합(set), 해시 테이블(hash table) 등
- 자료구조는 자료를 저장하는 기능뿐만 아니라 빠르게 검색하거나 정렬할 수 있는 기능도 중요함
Vector 클래스
- JAVA에서 가장 오래된 자료구조 구현 클래스
- 배열의 경우, 크기가 고정되어 있기 때문에 사용이 불편함
- Vector는 가변 크기의 배열을 구현
- 요소의 개수가 늘어나면 자동으로 배열의 크기가 늘어남
- 어떤 타입의 객체도 저장(기본형 데이터도 저장)
Collection 종류
- 자바는 컬렉션 인터페이스와 컬렉션 클래스로 나누어서 제공
- java.util에 포함
- 컬렉션 라이브러리들은 모두 제네릭 기능을 지원
- Collection - 모든 자료 구조의 부모 인터페이스로 객체의 모임을 나타냄
- Set - 집합(중복된 원소를 가지지 않는)을 나타내는 자료 구조
- List - 순서가 있는 자료 구조로 중복된 원소를 가질 수 있음
- Map - 키와 값으로 구성(사전 형태)
- Queue - 들어오는 순서대로 나가는 자료구조
Collection Interface와 구현 클래스
- 파란색 : 인터페이스
- 주황색 : 구현 클래스
Map Interface와 구현 클래스
- 파란색 : 인터페이스
- 주황색 : 구현 클래스
Set Interface 예제
- HashSet : 키값만 중복되지 않게
- LinkedHashSet : 입력한 순세대로
- TreeSet : 정렬
Map Interface 예제
※ Set 인터페이스와 차이점 : Map은 키에 해당하는 값이 존재
- HashMap : 키 값이 중복되지 않게
- LinkedHashMap : 넣은 순서대로
- TreeMap : 정렬
List Interface 예제
ArrayList
- 순차적인 추가/삭제는 빠르지만,
- 중간에 있는 데이터를 추가/삭제하는 경우 LinkedList에 비해 느림
- 추가/삭제를 반복할 경우 메모리 사용이 비효율적일 수 있음
LinkedList
- 데이터를 처리하는데 있어서 개수가 계속해서 변하는 경우에 사용
- 그 외는 대부분 ArrayList를 사용
List 정렬
Collections.sort
- Collections 클래스 : 여러 유용한 알고리즘을 구현한 메소드들을 제공
- Comparable 인터페이스를 상속한 클래스 정렬
반응형
'cs > java-spring-boot' 카테고리의 다른 글
개발자의 시크릿노트 책 [클린코드] (0) | 2022.02.07 |
---|---|
[Zero-base] 4-7. 예외처리 (0) | 2022.02.04 |
[Zero-base] 4-5. 제네릭 클래스 (0) | 2022.02.04 |
[Zero-base] 4-4. 날짜 관련 클래스 (0) | 2022.02.04 |
[Zero-base] 4-3. Math 클래스 (0) | 2022.02.04 |