티스토리 뷰
✏️ Collection API
- 여러 객체를 담아내는 인터페이스들의 특징을 말한다
- Collection API : 자료를 저장하는 방식 (HashSet, ArrayList, HashMap)
- Collection 인터페이스는 가장 원시적인 방법으로 객체를 저장하는 특징을 가진다
- Collection API에서는 toString()이 데이터를 리턴하도록 자체적으로 오버라이딩 되어있다
✏️ Collection Interface
- Collection 인터페이스는 가장 원시적이므로, 순서가 없고 중복을 허용한다
- Set 인터페이스는 Collection 다음으로 원시적이고, 순서가 없고 중복을 허용하지 않는다
- List 인터페이스는 내부에서 index로 관리되므로, 순서를 가지고 중복을 허용한다
- Map 인터페이스는 key-value의 형태를 가지며, 순서가 없고 key값의 중복을 허용하지 않는다 (value 중복 가능)
- Map 은 Collection과 같은 계보를 잇지 않고 독립적인 성격을 갖는다
- 반면 Collection과 같은 계보를 잇는 Set, List는 Hierarchy 구조를 갖는다
- 이를 통해 Collection의 저장 방식과 다른 Map만의 저장 방식이 있음을 알 수 있다
- Collection, Set, List, Map은 모두 인터페이스이므로 이들을 구현한 Implements 관계의 클래스들이 존재한다
- 자식 클래스의 구체화된 특징을 모두 확인하는 것은 어렵기 때문에, 이렇게 부모의 특징을 먼저 짚는 것이 중요하다
✏️ Set
- HashSet : 고유한 값만을 저장한다
- set은 프로그램을 만들 때 직접적으로 set에 데이터를 넣고 삭제하는 데 사용하기보다
- 어떠한 메서드를 사용할 때 return type으로 사용되는 경우가 많다
✏️ List
- Vector
- 모든 요소에 대해 Lock이 걸려 있기 때문에 Thread 동기화 처리 이슈가 발생하지 않는다
- 동기화 처리로 인해 데이터 입출력 정확도는 높다는 장점이 있다
- 반면, 모두 동기화 처리되어있기 때문에 프로그램이 무거워져 성능 저하로 인해 속도가 느리다는 단점이 있다
- ArrayList (대표적)
- Vector와 거의 유사한 구조를 가졌으나, 동기화 처리가 되어있지 않다
- 동기화 처리가 되어있지 않으므로 속도는 빠르나 데이터 안정성 확보에 대한 이슈가 있다
- 데이터 안정성 확보이 필요한 경우에만 개발자가 직접 동기화 처리(synchronized)를 걸어준다
- LinkedList : 비 순차적인 데이터의 추가와 삭제가 용이하다
- Vector와 ArrayList의 차이점을 알아두자
✏️ Map
- HashTable
- Properties : Map을 구현한 클래스이므로, key(String)-value(String)의 형태를 갖는다. 다만 String만을 사용할 수 있다
- HashMap (대표적)
- HashTable과 HashMap의 차이점 = Vector와 ArrayList의 차이점과 동일하다
'BackEnd > JAVA' 카테고리의 다른 글
Thread (0) | 2021.11.18 |
---|---|
이클립스 프로젝트 jdk버전 변경하기 (0) | 2021.11.15 |
static, final (0) | 2021.10.26 |
싱글톤 패턴(SingleTone Pattern) (0) | 2021.10.25 |
[Ch.05] 2. String 배열, 다차원 배열 (0) | 2021.03.14 |
댓글