티스토리 뷰

BackEnd/JAVA

ColletionAPI

JINSUKUKU 2021. 11. 12. 19:40

✏️ 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
댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
최근에 올라온 글
글 보관함
Total
Today
Yesterday