티스토리 뷰

반응형

 

 

🤔 컬렉션 프레임워크(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 사용

 

반응형