티스토리 뷰
[자바의 정석] Ch 11 총정리 - 1 (Collection, framework, ArrayList, LinkedList)
da_devel 2022. 7. 23. 03:37
🤔 컬렉션 프레임워크(collections framework)
: 데이터를 저장하는 클래스들을 표준화한 설계
- 컬렉션(다수의 객체를 다루기 위한 표준화된 프로그래밍 방식)
- 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스 제공
- java.util 패키지에 포함. jdk 1.2부터 제공
🤔 컬렉션(collection)
: 다수의 데이터, 데이터 그룹
- 여러 객체(데이터)를 모아 놓은 것
🤔 프레임워크(framework)
표준화된 체계적인 프로그래밍 방식
🤔 컬렉션 클래스
: 다수의 데이터를 저장할 수 있는 클래스
(예 : Vector, ArrayList, HashSet)
🤔 라이브러리와 프레임워크
✔ 라이브러리 : 공통으로 사용될만한 유용한 기능을 모듈화하여 제공
✔ 프레임워크 : 단순히 기능뿐만아니라 프로그래밍 방식을 정형화하여
프로그램의 개발 생산성을 높이고 유지보수성을 용이하게 함.
🧡 암기하기!
List : 순서 o, 중복 o
Set : 순서 x, 중복 x
Map : 순서 x, 키 중복 x, 값 중복 o
🤔 ArrayList
✔ List 인터페이스 구현하기 때문에 순서 o, 중복 o
✔ Vector의 개선 버전이므로 구현원리와 기능적으로 동일
ArrayList와 달리 Vector는 자체적으로 동기화처리되어 있음.
Vector는 기존 소스와 호환성을 위해 계속 남겨 두고 있기 때문에
가능하면 ArrayList 사용하자.
✅ ArrayList에는 객체만 저장 가능
✅ Autoboxing에 의해 기본형이 참조형으로 자동 변환
🤔 ArrayList의 추가와 삭제
1. 삭제할 데이터의 아래에 있는 데이터를 한 칸씩 위로 복사해서 삭제할 데이터를 덮어씀.
2. 데이터가 모두 한 칸씩 위로 이동하였으므로 마지막 데이터는 null로 변경
3. 데이터가 삭제되어 데이터 개수(size)가 줄었으므로 size의 값을 1감소시킴.
컬렉션 | 읽기(접근 시간) | 추가 / 삭제 | 비 고 |
ArrayList (배열기반) | 빠르다 | 느리다 | 순차적인 추가삭제는 더 빠름. 비효율적인 메모리 사용 |
LinkedList (연결기반) | 느리다 | 빠르다 | 데이터가 많을수록 접근성이 떨어짐. (하나씩 이동해야하므로) |
🧡
데이터의 갯수 변경이 없을 땐 ArrayList 사용
데이터의 개수 변경이 잦으면 LinkedList 사용
'프로그래밍 > 자바' 카테고리의 다른 글
[자바의 정석] Ch 11 총정리 - 2 (0) | 2022.07.30 |
---|---|
[자바의 정석] Ch11-23 Iterator, LinkedIterator, Enumeration, Ch11-25~29 Arrays의 메서드 (0) | 2022.07.26 |
[자바] 향상된 for문이란? (for i : arr) 의미 🤔 (0) | 2022.07.14 |
[자바의 정석] Ch 11 -30 Comparator와 Comparable이란? (0) | 2022.07.07 |
[자바의 정석] Ch11 25~29 Arrays란? (0) | 2022.07.06 |
- Total
- Today
- Yesterday
- BAEKJOON
- hackerrank challenges
- JPA
- 해커랭크
- hackerrank
- 강의
- 정보처리 산업기사
- 그리디
- queue
- 자바의 정석
- Java
- 22 정보처리 산업기사
- challenges
- 정보처리산업기사
- 코드
- 디버깅
- 소스코드
- 백준
- stack
- 자바
- 풀이
- 해커랭크 자바
- 챌린지
- LinkedList
- 개발자
- 해커랭크 자바 챌린지
- 해커랭크 챌린지
- 22 정보처리산업기사
- 정보처리산업기사 공부법
- ORM
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |