배열
- 자료형이 같은 기억장소의 모임
ㅇ 배열의 단점
- 자료형이 같아야 한다.
- 크기가 고정된다.
int []a = new int[3];
int 정수만 담을 수 있는 배열 3개가 생긴다.
int a[] = {10,20,30,40,50};
- 값을 추가하거나, 중간의 값을 삭제하고자 하면 새로 배열을 만들어서 반복문으로 넣어줘야 하는 등
- 데이터 추가, 삭제가 번거롭다.
컬렉션 프레임워크는 왜 사용하는가?
- 전통적으로 많은 양의 데이터를 처리하기 위해서는 배열을 이용. 그러나 배열은 자료형이 같아야 하고 또 크기가 고정되어 있어 자료의 추가, 삭제하기에는 불편한 점이 많다.
- 이를 보완하기 위해 자바는 "동적배열"의 개념인 컬렉션 프레임워크를 제공한다.
- 컬렌션프레임워크는 어떤 자료형이라도 담을 수 있고 또, 자료의 추가, 삭제가 자유로워 데이터 크기가 자료를 담는 만큼 혹은 삭제하는 만큼 크기가 변화한다.
- 종류는 Set, List, Map이 대표적
- Set은 자료의 중복을 허용하지 않고, List는 자료의 중복을 허용한다.
- 또, Map key와 value가 한쌍으로 이루어진 자료구조로 python의 딕셔너리와 유사하다.
컬렉션 프레임워크(collection framework)
- 배열의 단점을 보완하기 위하여 자바가 java.util 패키지에서 제공하는 자료구조
- 어떤 자료형 이라도 담을 수 있다.
- 크기가 자유롭게 늘어난다.
ㅇ 컬렉션 프레임워크의 종류
- Set : 중복 허용 X
- HashSet : 무작위 값을 담는 set
- LinkedHashSet : 넣은 순서대로 담는 set
- TreeSet : 자동 정렬하여 담는 set - List : 중복 허용 O
- ArrayList를 가장 많이 사용
- LinkedList는 ArrayList와 보이는 것은 동일하지만, 중간에 값을 넣는 경우 유용하다.
- Vector, Stack도 List의 종류 - Map : key와 value가 한쌍으로 이루어진 자료구조
set과 list는 마치 배열처럼 index로 접근하지만
Map에 데이터에 접근하기 위해서는 index가 아니라 특정 key로 접근하는 방식
Set(중복허용X) |
HashSet |
무작위로 값을 담는 set / 효율 좋다 |
|
LinkedHashSet |
넣은 순서대로 값을 담는 set |
|
TreeSet |
자동 정렬해서 값을 담는 set / 가장 바쁨 |
List(중복허용O) |
ArrayList |
배열 같은 List, 순서대로 메모리 잡히는 List |
|
LinkedList |
리스트배열과 비슷하지만, 주소로 순서 정하는 List |
|
vector, Stack |
이것도 리스트 |
Map(key와 value) |
HashMap |
무작위로 키와 값이 담기는 Map |
|
LinkedMap |
넣는 순서 대로 키와 값이 담기는 Map |
|
TreeMap |
키값으로 정렬되어 담기는 Map |
cellection 인터페이스 메소드
메서드 |
설명 |
boolean add(E e) |
컬렉션에 객체 추가 |
void clear( ) |
컬렉션의 모든 객체를 제거 |
Iterator<E> iterator |
순환할 반복자(Iterator)를 반환 |
boolean remove(Object o) |
컬렉션에 매개변수에 해당 인스턴스가 존재하면 제거 |
int size( ) |
컬렉션에 있는 요소의 개수를 반환 |
반응형
'Java | spring > Java Basic' 카테고리의 다른 글
자료구조, Stack 스택과 큐 Queue (0) | 2019.05.07 |
---|---|
JAVA 제네릭 정의와 필요성 (+ArrayList 타입 오류 이유) (0) | 2019.05.07 |
JAVA 자바, Wrapper 클래스 (0) | 2019.05.07 |
JAVA 기본 클래스(Object, toString, equals 등) (0) | 2019.05.07 |
java String 기본 메소드 활용 예제 (0) | 2019.05.07 |
댓글