기록하는 개발자
Collection : List, Set, Map 본문
Collection : 다수의 데이터를 다루기 위한 자료구조를 표현하고 사용하는 클래스의 집합
1. List : 순서 있음, 데이터 중복 있음, resizable-array(용량 자동 증가)
- Method
boolean add(E e)
void add(int i, E e)
E set(int i, E e)
boolean contains(Object o)
E get(int i)
boolean isEmpty()
int size()
void clear()
E remove(int i)
boolean remove(Object o)
2. Set : 순서 없음, 데이터 중복 없음
- Set -Extends-> Sorted Set -Extends-> Navigable Set -Extends-> Treeset
- Method
add(e)
addAll(Collection)
clear()
contains(e)
containsAll(Collection)
hashCode()
isEmpty()
iterator()
remove(e)
removeAll(Collection)
retainAll(Collection) // 리턴 false, true
size()
toArray()
3. Map : (Key, Value) pair, Key 중복 가능, Value 중복 없음
- Method
put(e)
get(i)
remove(e)
기본 메서드 중복 사용
++ HashMap vs HashTable
| 키나 값에 null 저장 가능 여부 | O | X |
| 여러 쓰레드 안전 여부 | X | O |
++ TreeMap : Key 기준으로 정렬
4. ArrayList <-> LinkedList + 예시, 속도 비교
- ArrayList : 검색이 빠름, 순차적 배열, 객체 추가-삭제 성능이 우수
- LinkedList : 배열의 중간 위치에 추가 -> 크기 조정, 인덱스 업데이트 X -> 더 빠름, 앞 뒤 두개를 참조 저장하기 때문에 더 많은 메모리 영역을 차지
5. Array <-> ArrayList + 예시, 속도 비교
가장 큰 차이점은 길이 조정 가능 여부
Array는 고정 길이 -> 정해진 길이의 배열을 모두 채우면 새로운 데이터를 추가 하고 싶을 경우 배열을 만들어 주어야 함
ArrayList 가변 길이 -> 재부적으론 배열로 구성되어 있음, Default 10이나 최적화로 인해 막 생성하면 0개의 사이즈, 편리하지만 Array보다 느리기때문에 코테나 알고리즘 풀때는 Array 사용 권장
'학습 노트 > 기본 개념 정리' 카테고리의 다른 글
| MAP : 기본 개념과 활용 (0) | 2022.01.15 |
|---|---|
| 파이썬 : 기본학습 (0) | 2021.12.30 |
| Ramda, Stream (0) | 2021.12.20 |
| 상속, 오버로딩, 오버라이딩, 추상클래스, 인터페이스 (0) | 2021.12.15 |
| 인텔리제이 한글 인코딩 (0) | 2021.12.15 |