#컬렉션 프레임워크(collection framework)
여러 가지의 데이터를 메모리에서 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스들의 집합을 의미합니다.
● 컬렉션 프레임워크 주요 인터페이스
1. List 인터페이스 : 순서가 있는 데이터들의 집합으로 데이터의 중복을 허용합니다.
(Vector, ArrayList, LinkedList, Stack, Queue(Stack의 반대))
2. Set 인터페이스 : 순서가 없는 데이터 집합으로 데이터의 중복을 허용하지 않습니다.
(HashSet, TreeSet)
3. Map 인터페이스 : 키와 값의 한 쌍으로 이루어지는 데이터의 집합으로 순서가 없습니다.
또한, 키는 중복으로 허용하지 않지만, 값은 중복될 수 있습니다.
(HashMap, TreeMap, HashTable, Properties)
Iterator 클래스를 통해 컬렉션 프레임워크의 요소들을 탐색할 수 있습니다.
자바의 컬렉션 프레임워크에서 컬렉션이 저장되어 있는 요소들을 탐색하여 읽어오는 방법을 표준화한 클래스입니다.
#벡터(Vector) 클래스
자바의 배열은 고정 길이를 사용합니다. 배열이 한번 생성되면 배열의 길이를 증가시키거나 감소할 수 없습니다.
자바에서는 동적인 길이로 여러 데이터형을 저장하기 위해 Vector 클래스를 사용합니다.
Vector클래스는 객체에 대한 참조값을 저장하는 배열이므로 다양한 객체들이 하나의 Vector에 저장될 수 있고 길이도 필요에 따라 증감할 수 있다는 점이 배열과 다릅니다.
- 자바 1.0부터 존재했던 레거시 클래스입니다. 컬렉션 프레임 워크가 포함되지 않던 자바 버전에서 정의한 인터페이스입니다.
- 배열과 마찬가지로 정수 인덱스를 이용하여 배열에 엑세스 할 수 있습니다.
- 동기화(순서대로 작업) 되어 있으며 한 번에 하나의 스레드만 백터의 메소드를 호출할 수 있습니다.
프로그램에서 동기화란, 프로그램을 사용할때 한 개의 결과가 완벽하게 끝나지 않으면 다음 단계로 넘길 수 없는 것이다.
* 동기 vs 비동기
예시)
* vector.capacity() // 처음에 만들어 놓았던 것에 모자르면 배로 증가한다.
* vector.elementAt(0) // 인덱스 기준 첫번째 내용을 꺼내온다.
* vector.removeAllElements(); // 벡터 지우기
* vector.capacity() // 벡터를 지우더라도 올라간 값은 초기화되지 않는다.
'🎨 Programming > JAVA' 카테고리의 다른 글
[JAVA] 23. List 컬렉션 클래스 - Stack / LinkedList (0) | 2021.03.18 |
---|---|
[JAVA] 22. List 컬렉션 클래스 - ArrayList (0) | 2021.03.18 |
[JAVA] 20. Object 클래스 / 제네릭(generic) (0) | 2020.06.29 |
[JAVA] 19. 래퍼클래스(Wrapper Class) (0) | 2020.06.29 |
[JAVA] 18. 인터페이스(interface) (0) | 2020.06.29 |