달리는 두딘

[JAVA] Collection Frameworks 본문

지식노트

[JAVA] Collection Frameworks

디두딘 2022. 4. 28. 16:56

Collections FrameWork

  • 컬렉션(Collection): 자바에서 제공하는 자료구조를 담당하는 프레임워크
  • 추가, 삭제, 정렬 등의 기능처리가 간단하게 해결되어 자료구조적 알고리즘을 구현할 필요가 없다.
  • Java.util 패키지에 포함
  • 인터페이스를 통해서 정형화된 방법으로 다양한 컬렉션 클래스를 이용할 수 있다.

 


 

  • 배열의 단점
    1. 한번 크기를 지정하면, 변경할 수 없다. 필요에 따라 늘리거나 줄일 수 없음. 공간의 크기가 부족하면 에러가 발생하므로, 넉넉한 크기로 할당하게 됨. 메모리를 낭비하는 결과를 초래함.
    2. 배열에 기록된 데이터에 대한 중간위치의 추가, 삭제가 불편함.
      • 맨 앞이나 중간 위치에 추가할 경우, 그 위치의 데이터부터 마지막에 기록된 데이터까지를 하나씩 뒤로 밀어내고, 추가해야 함. 삭제의 경우도 마찬가지임.
      • 배열의 추가, 삭제에 대한 알고리즘이 복잡하다.
    3. 한 타입의 데이터만 저장한다.

 


 

  • 컬렉션은 저장하는 크기의 제약이 없다. 자료를 구조적으로 처리하는 자료구조가 내장이 되어 제공이 됨
    • 추가, 삭제, 정렬 등의 기능처리가 간단하게 해결됨.
    • 자료구조적인 알고리즘 구현이 필요없다.
    • 여러 타입을 저장할 수 있다.
    • 객체만 저장함 : 필요할 경우 데이터의 저장을 위해 Wrapper 클래스를 사용함

 


 

  • 컬렉션은 두 부류로 나눠짐
    1. Collection 인터페이스의 후손들
      • List 인터페이스 계열
      • Set 인터페이스 계열
    2. Map 인터페이스의 후손들

 


 

인터페이스

  • java.util.List : 중복을 허용하고, 순서있음. 인덱스 이용 가능 java.util.ArrayList
  • java.util.Set : 집합. 중복없고, 순서없음. java.util.HashSet
  • java.util.Map : 키와 값의 쌍을 요소로 저장함. 키를 통해 값을 꺼낼 수 있음. java.util.HashMap

 

상속에 대한 계층구조

  • Collection - Set - AbstractSet - HashSet : 중복제거
  • Collection - Set - AbstractSet - HashSet - LinkedHashSet : 저장되는 순서유지
  • Collection - Set - AbstractSet - TreeSet : 자동 오름차순정렬됨 ###list
  • Collection - List - AbstractList - ArrayList : 배열처럼 사용(Thread Safe 기능없음)
  • Collection - List - AbstractList - AbstractSequentialList - LinkedList : (Thread Safe 기능없음)
  • Collection - List - AbstractList - Vector: 하위호환용 더이상 사용하지 말것.(Thread Safe 기능포함) ###map
  • Map - AbstractMap - HashMap : (Thread Safe 기능없음)
  • Map - HashTable : 구버젼(Thread Safe 기능포함)

 

'지식노트' 카테고리의 다른 글

[Network] PORT와 DNS  (1) 2022.04.29
[Spring] RestAPI  (0) 2022.04.29
[Spring] #{} / ${}의 차이  (2) 2022.04.28
[Spring] Controller - class method가 가질 수 있는 파라미터  (1) 2022.04.28
[Spring] Logback 적용 여정기  (2) 2022.04.28