1. 콜렉션(Collection) 개념1, 개념2, 개념3, 예제1, 예제2
1) 배열과 콜렉션은 다르다 :
- 배열은 정해진 메모리 크기에 불가변한 데이터를 넣는다. 삭제와 추가가 불가능하다.
- 컬렉션은 각 메모리에 주소가 있어서 주소를 이동하면서 데이터를 처리한다.
- 가변하기 때문에 데이터의 삭제와 추가 및 변경이 가능하다.
- 그래서 변하지 않는 데이터를 이용할때는 배열에 넣고, 가변하는 데이터는 컬렉션에 넣는다.
2) 콜렉션 프레임워크(Collection Framework) 개념1, 개념2, 개념3, 예제1, 응용
- 컬렉션들을 표현하고 조작하기 위한 통합 구조. 객체들은 자료 구조적 특성대로 알고리즘이 구현되어 바로 사용가능
- 특징 : 필요에 따라 확장가능하며, 객체만 포함한다.(프리미티브 타입 불가)
데이터를 그룹으로 처리할때 크기가 유동적으로 변경될 수 있다.
메모리의 효율성, 데이터 처리작업의 효율성을 고려해 다양한 기법을 제공한다.
2. List 계열 콜렉션 개념
1) ArrayList : 크기가 가변적인 선형 리스트로 배열 구조처럼 순차적으로 데이터들이 저장되며 인덱스를 사용
- 저장되는 데이터의 순서가 유지, 중복된 데이터 저장 가능
- 저장 용량을 넘어서면 자동으로 용량을 증가함으로써 추가적으로 요소를 넣을 수 있도록 해줌
** Iterator 메소드 : 전체 객체를 acess할때 사용되며, 커서가 있다. 개념1, 예제1, 예제2
2) Vector : ArrayList와 달리 동시 접근에 대한 처리가 된다.
- 여러 곳에서 동시에 하나의 자원을 사용할 때 문제없이 동작하도록 하는 기능을 동기화 처리라고 한다
** Enumeration 메소드 : 동기화 처리가 되어 있어서 오류가 발생하지 않음 개념
3) LinkedList : 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 자료구조
- 데이터를 담고 있는 노드들이 연결되어 있고, 노드의 포인터가 이전 노드와 다음 노드와의 연결을 담당
3. Set 계열 콜렉션 개념1, 개념2, 예제
1) HashSet : 해시 알고리즘을 사용하여 검색속도가 매우 빠름 예제1, 예제2, 예제3
** Hash는 값을 저장하고 조회하는 가장 빠른 알고리즘임
- 내부적으로 HashMap 인스턴스를 이용하여 요소를 저장
- 특징 : 저장한 순서대로 값이 저장되지 않고, 따라서 출력 또한 저장된 순서대로 출력되지 않음
2) TreeSet : 데이터가 "정렬"된 상태로 저장되는 이진 검색 트리(binary search tree)의 형태로 요소를 저장 개념
4. Map 계열 콜렉션 개념, 예제
1) HashMap : 키와 값을 묶어서 하나의 데이터로 저장. (여러개의 Map.Entry를 가지는 객체)
2) Hashtable : 해시맵(HashMap)과 함께 Map을 구현한 키와 값 쌍을 데이터로 저장한 컬렉션 예제
3) Properties : HashMap의 구버전인 Hashtable을 상속받아 구현한 것
4) TreeMap : Tree구조로 데이터의 저장, 삽입, 삭제 등의 작업을 하는데 시작 위치는 항상 루트이다. (저장시 자동정렬)
'개발 > JAVA' 카테고리의 다른 글
4. 라이브러리 활용 (4) 입출력 (0) | 2022.06.27 |
---|---|
4. 라이브러리 활용 (3) 예외처리 - 예외API, Throws (0) | 2022.06.26 |
4. 라이브러리 활용 (1) API 활용 (0) | 2022.06.24 |
3. 언어특성활용 (3) 다형성, 내부클래스 (0) | 2022.06.19 |
3. 언어특성활용 (2) 상속, 추상화, 인터페이스 (0) | 2022.06.19 |