[Java] Java Collections ( List, Set, Map ) 개념(1)

Da-hye·2020년 12월 7일
0

JAVA

목록 보기
1/1

1. Java Collection 이란?

다수의 데이터를 쉽고 효율적으로 처리할 수 있는 방법을 제공하는 클래스의 집합체, 인터페이스를 의미한다.

💡 Collection은 용도에 따라 크게 List, Set, Map 3가지 인터페이스로 분류되어 사용된다.
💡 Collection Interface
: 모든 컬렉션의 상위 인터페이스로서, 컬렉션들이 가지는 핵심 메소드가 선언되어 있다. ( add, isEmpty, remove .. )


🔎 List형

순서가 있는 데이터의 집합, 데이터 중복 O

1. LinkedList

  • 양방향 포인터 구조
  • 데이터의 삽입, 삭제가 빈번할 경우 데이터의 위치정보만 수정하면 되기에 유용

2. ArrayList

  • 단방향 포인터 구조
  • 데이터마다 Index가 존재해 데이터 조회 기능 우수

3. Vector

  • 과거 데이터 대용량 처리를 위해 사용, 상대적으로 성능이 좋지 않아 잘 쓰이지 않음

🔎 Set형

순서가 없는 데이터의 집합, 데이터 중복 X

1. HashSet

  • 데이터를 hash table에 저장, Set 중에 가장 성능이 좋음

2. TreeSet

  • 저장된 데이터의 값에 따라 정렬, red-black tree 타입으로 값이 저장

🔎 Map형

KEY-VALUE, 키와 값의 쌍으로 이루어진 데이터의 집합,
순서가 없고, 키 중복 X, 데이터 중복 O

💡 동일한 키를 가진 객체를 저장하려 한다면, 기존 값은 사라지고 새로운 값으로 대치된다.

1. HashMap

  • 대표적으로 많이 사용되는 Map collection
  • 데이터를 Array의 형태로 저장
  • KEY로 사용할 객체는 hashCode()equals() 메서드를 오버라이드 해서 동등 객체가 될 조건을 정의해야함
💡 동일 키 조건 : hashCode() 값이 같고, equals() 메서드가 true 를 반환

2. TreeMap

  • 데이터를 Binary search tree의 형태로 저장
  • KEY 값을 기준으로 데이터 정렬

3. HashTable

  • HashMap과 내부 구조 동일
  • 동기화된 메서드로 구성되므로, 스레드에 안전(thread safe)
💡 멀티 스레드 환경에서는 동시에 메서드를 실행할 수 없다. 하나의 스레드가 작업이 완료되어야만 다른 스레드가 해당 메서드를 실행할 수 있으므로, 안전한 데이터 작업이 가능하다.
profile
🌱 차근차근, 오래 즐겁게!

0개의 댓글