컬렉션
여러 객체(데이터)를 모아 놓은 것
프레임워크
표준화, 정형화된 체계적인 프로그래밍 방식
컬렉션 프레임워크
여러 객체(데이터)를 저장하는 클래스들을 표준화한 설계
즉, 엄청 많은 데이터를 다룰 수 있게 제공하는 다양한 기능이라고 생각하자.
cf) 라이브러리
공통으로 사용될만한 유용한 기능을 모듈화하여 제공. 남이 만든걸 가져다 쓰는 정도.
컬렉션 프레임워크에는 세 가지 핵심 인터페이스가 존재한다.
List (순서 O, 중복 O)
순서가 있는 데이터의 집합 / 데이터의 중복 허용
예를 들어 식당 대기자 명단의 경우를 생각해보자.
식당의 waiting list에는 당연히 먼저 온 사람부터 들여보내야하니 순서가 있다.
대신에 대기자의 이름이 '홍길동'으로 같을 수는 있다.
구현 클래스로는 ArrayList / LinkedList / Stack / Vector
Set (순서 X, 중복 X)
순서를 유지하지 않는 데이터의 집합 / 데이터의 중복 불가
예를 들어 네 발 동물의 집합을 생각해보자.
A 집합: 강아지, 고양이, 호랑이, 사자, 얼룩말, 치타, 강아지 (중복 불가)
B 집합: 고양이, 사자, 얼룩말, 치타, 호랑이, 강아지
A 집합이나 B 집합이나 그게 그거다. 즉, 데이터들의 순서는 중요하지 않다.
구현 클래스로는 HashSet / TreeSet
Map (순서 X, 키는 중복 X, 값은 중복 O)
키와 값의 쌍으로 이루어진 데이터의 집합
순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복 허용
예를 들어 아이디와 비밀번호를 생각해보자.
내 아이디는 qwer이다. 다른 사람은 이 아이디로 절대 가입 못한다. (보통 그럼)
내 비밀번호는 1234이다. 아이디가 나와 다른 사람도 나랑 우연히 비밀번호가 겹칠 수 있다.
즉, 아이디(키)는 중복 불가지만, 비밀번호(값)는 중복 가능하다.
구현 클래스로는 HashMap / TreeMap / Hashtable / Properties
'JAVA' 카테고리의 다른 글
Iterator 인터페이스 (0) | 2020.12.04 |
---|---|
ArrayList (0) | 2020.10.13 |
배열 (0) | 2020.09.30 |
break문과 continue문 (0) | 2020.09.30 |
이중 for문 / 향상된 for문 (0) | 2020.09.30 |