Java 컬렉션 프레임워크(Collection Framework) 1편
✍2022-02-02
컬렉션 프레임웍(Collections framework) 1편
본 내용은 자바의 정석을 바탕으로 작성
❗ 개인이 공부한 내용을 적은 것 이기에 오류가 많을 수도 있음
컬렉션 프레임웍의 핵심 인터페이스
- List : 순서가 있는 데이터 집합, 데이터의 중복 허용 ex) 대기자 명단, 보통 ArrayList와 LinkedList를 사용
- Set : 순서가 없는 데이터 집합, 데이터의 중복 허용 금지 ex) 양의 정수집합
- Map : 키와 값의 쌍으로 이루어진 데이터의 집합, 순서 유지(X), 키 → 중복 허용 금지, 값 → 중복 허용 ex) 우편번호, 지역번호 , 키 → ID , 값 → 비밀번호라 생각
ArrayList
- 데이터의 저장공간으로 배열을 사용
- 1번식으로 하면 성능이 안좋아서 2번식으로 하는게 좋다
배열
- 배열은 구조가 간단하고 데이터를 읽는 데 걸리는 시간이 짧다
- 크기를 변경할 수 없다
- 비순차적인 데이터의 추가, 삭제에 시간이 많이 걸린다
LinkedList
1)장점
- 배열의 단점을 보완 → 배열과 달리 불연속적으로 데이터를 연결
- 데이터의 삭제 : 단 한 번의 참조변경만으로 가능
- 데이터의 추가 : 한번의 Node 객체 생성과 두 번의 참조변경만으로 가능
2)단점
- 데이터 접근성이 나쁨 → 0x200 에서 0x400으로 한번에 못가고 한칸씩 옮겨서 가야한다
더블링크드리스트 (Doubly LinkedList)
- 위의 단방향성의 단점을 개선하고자 나옴
- 접근성이 향상되었지만, 앞 뒤로의 이동만 좋아짐
더블써큘려링크드리스트
- 더블링크드리스트 (Doubly LinkedList) 보다 접근성을 더 향상시킴
- 더블 링크드리스트의 첫 번째 요소와 마지막 요소를 서로 연결 시킴 → 예를 들면 채널 1에서 아래로 채널을 내리면 99번을 가는 것과 같은 원리
ArrayList vs LinkedList
- 순차적으로 데이터를 추가/삭제 ArrayList가 더 빠름
- 비순차적으로 데이터를 추가/삭제 LinkedList가 더 빠름
- 접근시간(access time)은 ArrayList가 더 빠름
Iterator
👈Tip
list와 set은 collection이 자손이다 → 다형성 활용 가능
Leave a comment