21.01.14-37일차

되자개발자·2021년 5월 24일
0

기록하기

목록 보기
36/46
post-thumbnail

😍 컬렉션 프리임웍(Collections Framework)

👉 컬렉션(collection)
-> 여러 객체(데이터)를 모아 놓은 것
👉 프레임웍(framework)
-> 표준화, 정형화된 체계적인 프로그래밍 방식
👉 컬렉션 프리임웍(collections framework)
-> 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식
-> 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공
-> java.util패키지에 포함. JDK1.2부터 제공


👼 켈렉션 프레임웍의 핵심 인터페이스

List
순서가 있는 데이터의 집합
데이터의 중복 허용
ex) 대기자 명단
구현클래스: ArrayList, LinkedList, Stack, Vector 등

Set(집합)
순서를 유지하지 않는 데이터의 집합
데이터의 중복 허용 안함
ex) 양의 정수집합, 소수의 집합
구현클래스: HashSet, TreeSet 등

Map
키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합
순서 유지 안함
는 중복 허용 안함, 은 중복 허용 (id와 pwd 생각하면됨)
ex) 우편번호, 지역번호(전화번호), 키-id 값-pwd


👼 Collection인터페이스의 메서드


👼 List인터페이스 - 저장 순서O, 중복O


👼 Set인터페이스 - 순서X, 중복X


(👇Set인터페이스 메서드 - Collection인터페이스와 동일👇)

(👇집합과 관련된 메서드(Collection에 변화가 있으면 true, 아니면 false를 반환👇)


👼 Map인터페이스 - 순서X, 중복(키X,값O)


👼 ArrayList

  • ArrayList는 기존의 Vector를 개선한 것으로 구현원리와 기능적으로 동일
  • ArrayList와 달리 Vector는 자체적으로 동기화처리 되어있음
  • List인터페이스를 구현 -> 저장순서O, 중복O
  • 데이터의 저장공간으로 배열을 사용(배열기반)

    👉 장점
    -> 배열은 구조가 간단
    -> 데이터를 읽는 데 걸리는 시간(접근시간, access time)이 짧다.
    👉 단점
    -> 크기 변경X
    (크키를 변경해야 하는 경우: 새로운 배열을 생성 후 데이터 복사, 크기 변경을 피하기 위해 충분히 큰 배열을 생성하면 메모리 낭비됨)
    -> 비순차적인 데이터의 추가, 삭제에 시간이 많이 걸림

👼 ArrayList에 저장된 객체의 삭제과정

👼 LinkedList

  • 배열의 단점을 보완
  • 불연속적으로 존재하는 데이터를 연결(link)
  • 데이터의 삭제: 단 한 번의 참조변경만으로 가능
  • 데이터의 추가: 한 번의 Node객체생성과 두 번의 참조변경만으로 가능
  • linked list - 연결리스트. 데이터 접근성이 나쁨
  • doubly linked list - 이중 연결리스트. 접근성 향상
  • doubly circular linked list - 이중 원형 연결리스트

👼출처

자바의 정석 책 & 유튜브

profile
열심히가 되는 길♨_♨

0개의 댓글