Collection (컬랙션)
□ Collection (컬랙션)의 의미는 객체들의 집합을 말함. 자바에서 Collection Framework를 지원하는 이유는 프로그래머가 자료구조에 대해 신경 쓰지 않고 프로그램을 쉽게 작성하고 성능을 향상시킬 수 있도록 하기 위해 사용. Collection Interface를 상속한 Set, list를 컬랙션이라고 말하지만 Map도 알아보지만 Map interface를 구현한 클래스들은 key(키)와 value(값)으로 객체를 다루기 때문에 진정한 컬랙션은 아님
내 용
|
아이템 중복 가능 여부
| |
Set
|
정렬순서 없음, 아이템 중복 불가능.
|
X
|
List
|
인덱스로 정렬, 아이템 중복 가능
|
O
|
Map
|
중복 불가능한 키로 정렬 된다.
|
O
|
Set(집합)
□ Set interface는 요소들의 순서가 정렬되어 있지 않으며, 중복된 요소를 포함할 수 없는 컬랙션
클래스
|
특 징
|
HashSet
|
집합의 요소들은 정렬되지 않는다. 동기화 처리가 되어 있지 않다.
|
LinkedHashSet
|
집합의 요소들은 추가된 순서대로 정렬된다(insertion order). 동기화 처리가 되어 있지 않다.
|
TreeSet
|
SortedSet interface로 구현된다. 집합의 요소들이 오름차순으로 정렬됨.(ascending order, natural order). 동기화 처리가 되어 있지 않다.
|
메소드명
|
매개변수
|
기 능
|
add()
|
Object o
|
지정된 요소가 집합에 존재하지 않는다면 추가
|
clear()
|
-
|
집합에 있는 모든 요소를 제거
|
contains()
|
Object o
|
집합에 지정된 요소가 있다면 true를 리턴
|
equals()
|
Object o
|
지정된 객체가 이 집합과 동일한지를 비교
|
isEmpty()
|
-
|
집합에 어떤 요소도 추가되어 있지 않다면 true를 리턴
|
remove()
|
Object o
|
지정된 요소가 존재한다면 제거
|
size()
|
-
|
집합의 요소의 수를 리턴
|
toArray()
|
-
|
집합에 있는 모든 요소를 배열로 리턴
|
List
□ List interface는 중복된 요소를 포함할 수 있으며, 요소들이 추가된 순서대로 정렬되는 컬래션
클래스
|
특 징
|
ArrayList
|
크기가 동적으로 늘어날 수 있는 배열. 인덱스로 정렬됨 (index order). null을 포함한 모든 요소를 허락. 동기화 처리가 되어 있지 않음
|
Vector
|
크기가 동적으로 늘어날 수 있는 배열. 인덱스로 정렬(index order), 배열처럼 인덱스를 통해 요소에 접근. 동기화 처리가 되어 있음
|
LinkedList
|
링크드 리스트를 구현하기 위한 클래스. 인덱스로 정렬(index order), null을 포함한 모든 요소를 허락. 동기화 처리가 되어 있지 않음
|
메소드 명
|
매개변수
|
기 능
|
add()
|
int index,
Object element
|
지정된 요소를 지정된 위치에 추가
|
add()
|
Object o
|
지정된 요로를 리스트의 끝에 추가
|
clear()
|
-
|
리스트의 모든 요소를 제거
|
contains()
|
Object o
|
지정된 요소를 포함하고 있다면 true를 리턴
|
equals()
|
Object o
|
지정된 요소와 리스크가 동일한지를 비교
|
get()
|
int index
|
리스트에서 지정된 위치의 요소를 리턴
|
isEmpty()
|
-
|
리스트가 어떤 요소도 포함하고 있지 않으면 true를 리턴
|
remove()
|
int index
|
리스트의 지정된 위치의 요소를 제거
|
size()
|
-
|
리스트에서 요소의 수를 리턴
|
Map
□ Map interface는 key로 value를 매칭시키며 중복된 키를 포함할 수 없도록 디자인되어 있는 컬랙션
※ SortedMap 인터페이스도 Map 인터페이스에서 상속
내 용
| |
HashMap
|
키와 아이템 null 불가. 정렬 X. 동기화 X
|
TreeMap
|
키가 오름차순으로 정렬. 동기화 X
|
LinkedHashMap
|
키가 추가된 순서로 정렬. 키와 아이템 null 가능. 동기화 X
|
WeekHashMap
|
정렬 X, 키와 아이템 null 가능. 동기화 X
|
Hashtable
|
정렬 X 키와 아이템 null 불가. 동기화 X
|
메소드명
|
매개변수
|
기능
|
clear()
|
-
|
맵의 모든 키와 요소를 제거
|
containsKey()
|
Object key
|
맵이 지정된 키를 가지고 있다면 true를 리턴
|
containsValue()
|
Object value
|
맵이 지정된 값과 관련된 키들을 가지고 있다면 true를 리턴
|
equals()
|
Object o
|
지정된 요소와 맵이 동일한지를 비교
|
get()
|
Object key
|
맵에서 지정된 키에 대한 요소를 리턴
|
isEmpty()
|
-
|
이 맵이 키와 요소를 가지고 있지 않다면 true를 리턴
|
put()
|
Object key,
Object value
|
지정된 키와 값을 추가
|
remove()
|
Object key
|
키와 관련된 요소를 제거
|
size()
|
-
|
맵에서 키/요소 쌍의 수를 리턴
|
Hashcode
□ 메모리에 실행된 객체의 주소를 빠르게 효율적으로 찾기 위해 사용되느 코드로써 자바가상머신의 hash함수에 의해 생성
□ Hashcode의 제약사항
① 프로그램이 시작되는 동안 같은 객체상에서 hashcode() 메소드가 여러번 호출되어도 항상 같은 값을 반환
② a.equals(b)가 true라면 a.hashcode() == b.hashcode()는 true가 된다.
③ a.equals(b)가 false라면 a.hashcode() == b.hashcode()는 false가 되어야 하지만 강제하지 않는다. true가 될 수 도 있음
④ hashcode는 객체를 가리키기 위한 일련의 숫자의 조합이기 때문에 프로그램이 실행된 이후에는 항상 같은 값을 반환
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.