컬렉션 프레임 워크란?
프로그램 구현에 필요한 자료구조와 알고리즘을 구현해 놓은 라이브러리
Java.util 패키지에 구현되어 있다.
개발에 소요되는 시간을 절약하고 최적화된 라이브러리를 사용할 수 있다.
Collection 인터페이스와 Map 인터페이스로 구성된다.
Collection 인터페이스
하나의 객체의 관리를 위해 선언된 인터페이스로 필요한 기본 메소드가 선언되어 있다.
하위에 List , Set 인터페이스가 있다.
Map 인터페이스
쌍으로 이루어진 객체를 관리하는데 필요한 여러 메소드가 선언되어 있다.
Map을 사용하는 객체는 key-value 쌍으로 되어 있고 key는 중복될수 없다.
배열은 연속된 선형 자료구조
ArrayList 논리적인 구조와 물리적인 구조가 동일하다. 뺴거나 추가하는데 오래걸리고
LinkedList 논리적인 구조는 순서대로지만 물리적으로 동떨어져 위치에 있다. 빼거나추가시 적게걸림
ArrayList는 붙어있기 때문에 i번째 찾는 것이 쉽다.
LinkedList는 맨 처음부터 찾아가야 한다.
ArrayList는 중간에 쓰다가 뒤에 추가할시 복사하고 생성해야 한다.
자료형의 변동이 심하면 LinkedList를 쓰고 i번째 금방금방 찾으려면 array를 쓰는게 좋다
선형자료구에는 또 스택 구조와 큐 구조가 있다.
스택은 LIFO – 마지막에 들어간게 먼저 나온다 데이터를 넣은 push() , 꺼내는 pop()
큐 FIFO – 먼저 들어간게 먼저 나온다 들어가는 enqueue() 나오는 dequeue()
스택은 arrayList 랑 vector 로 많이 구현하고 큐는 arraylIst로 많이 구현
Hash 자료구조 - 검색을 위한 자료구조
Index = Hash(key) 해쉬테이블 이라고 하는데 키를주면 이 테이블에 몇번째 인덱스 위치를 알려준다. 산술연산이 가능해서 굉장히 빠르다.
검색에 대한 빠르고 key는 중복되지 않는다.
예) 극장에 좌석이 0번부터 99번까지 있는데 300장을 팔면 1번부터 300번까지 표를 팔면 15번이 영화를 보러오면 어디에 앉히면 좋을까 나머지 연산을 써서 15를 100으로 나누면 15번째 에다가 앉히는데 115번이 오면 115 를 100으로 나누면 나머지는 15 앉히려고 하는데 이미 앉아 있으면 우리가 콜리젼(충돌)이 발생 그래서 나머지 연산을 해쉬함수로 하고 찾아주세요 하면 그 위치에 맞게 찾아주면 된다.해쉬테이블은 꽉차게 쓰지 않는다 hashSet 이라든가 hashMap 도 쓰는데 내부 해쉬 구조로 되어있어서 꽉차게 쓰지 않는다 . 75프로 차면 hash테이블을 뻥튀기 한다.
해쉬 알고리즘 = 검색을 위한 알고리즘
마지막으로 바이너리 서치 트리
비교조건에 나를 중심으로 해서 나의 왼쪽은 나보다 작은값 오른쪽은 나보다 큰값이 된다.
'JAVA Programming' 카테고리의 다른 글
[65] Set 인터페이스 (Iterator 순회 , 중복x, 순서대로x) (0) | 2020.07.20 |
---|---|
[63] ArrayList 에서 쓰이는 Stack , Queue구현하기 Static 에서 push() , pop() 구현하기 (0) | 2020.07.20 |
[59] 제네릭 프로그래밍 (0) | 2020.07.20 |
[58] StringBuilder , StringBuffer 기본적인 char[] 배열을 멤버변수 클래스 , Wrapper 클래스 정의 (0) | 2020.07.20 |
[57] String 클래스 힙메모리 , 상수풀 (0) | 2020.07.20 |