컬렉션 프레임워크

seni·2024년 6월 20일

JAVA

목록 보기
21/34

컬렉션

  • 여러 객체(데이터)를 모아 놓은 것
  • 컬렉션 기능 : 크기 자동조정/추가/수정/삭제/반복/순회/필터/포함 확인 등...

프레임워크(framework)

  • 틀 작업
  • 정형화된(틀이 있는) 프로그래밍 방식
  • 정해둔대로 하면 되니깐 프로그래밍 생산성이 올라감 -> 유지보수성이 높음

라이브러리

  • 다른 사람이 미리 만들어 놓은 것을 모아 놓은 것
  • 오디오 라이브러리, 통계 라이브러리, 그래픽 라이브러리...처럼 이미 만들어 놓은 것

컬렉션 프레임워크

  • 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식
    • 객체를 다룬다는 것은 저장,삭제,검색,정렬 등...을 하는 것!
  • 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공하는것을 '컬렉션 클래스'라고 함

컬렉션 클래스

  • 다수의 데이터를 저장할 수 있는 클래스(ex) Vector, Arraylist, HashSet)

컬렉션 프레임워크의 핵심 인터페이스

  • 크게 3가지 데이터로 나눌 수 있음

List

  • 순서가 있는 데이터의 집합, 중복을 허용
  • 순서란 저장되는 순서를 유지한다는 뜻
  • 중복허용은 같은 값을 저장할 수 있다는 뜻
  • ex) 대기자 명단

List의 대표적인 컬렉션 클래스 : ArrayList, LinkedList

  • int indexOf(Object o) :
    • 어떤 객체가 몇번째 저장되어 있는지 찾을때 쓰는 메서드
    • 객체가 저장되어 있는 위치를 알려줌.
    • 왼쪽에서 오른쪽으로 찾음.
  • int lastIndexOf(Object o)
    • 반대) 오른쪽에서 왼쪽으로 찾음.
    • 찾는 방향만 다르고, int indexOf(Object o)와 같음.
  • void sort(Comparator c) : 정렬
  • List subList(int fromindex, int toindex)
    • 전체에서 일부의 요소를 뽑아내서 새로운 리스트를 만들어 내는 것

Set (집합)

  • 순서가 없는 데이터 집합, 중복 허용하지 않음

set의 대표적인 컬렉션 클래스 : HashSet, TreeSet



Map

  • 키(Key)값(value)의 쌍(pair,Entry)으로 이루어진 데이터의 집합
  • 순서 없음, 키는 중복을 허용하지 않고, 값은 중복을 허용
  • ex)우편번호, 지역번호(서울,02처럼 한 쌍으로 묶어져 있는것!)
  • ex) 키(id) 값(password) -> id는 중복X password는 중복될 수 있음

Map의 대표적인 컬렉션 클래스 : HashMap, TreeMap

  • LinkedHashMap : HashMap은 원래 순서가 없는데, LinkedHashMap은 서로 연결 돼있으니깐 순서가 있음!


  • Object put(Object key, Object value)
    • Map인터페이스를 구현한 컬렉션 클래스에 객체를 추가할 때는 put, putAll 메서드를 사용함
    • key, value를 같이 저장하게 돼 있음.
  • Object remove(Object key) : 삭제
  • boolean containsKey(Object key) : 검색
  • boolean containsValue(Object key) : 검색
  • Object get(Object key) : 검색
  • Set entrySet(), Set keySet(), Collection values()
    • Map에 저장되어 있는 데이터를 읽기
    • Set keySet()이란 메서드를 호출하면 Map에 저장되어 있는 key만 읽는다!
    • Collection values()
      • 값만 읽어올 때
      • values는 반환 타입이 Collection 인데,??
      • 그 뜻이... 순서가 있어도 되고, 없어도 되고, 중복이 있어도 되고, 없어도 된다
      • 컬렉션의 자손이 List와 Set이고, 어떤 모양으로 와도 된다는 것.. -> 그래서 Collection 타입으로 돼 있다!
    • key, value를 합쳐서 Entry라고 하고,
    • Entry를 읽어오는게 Set entrySet()
    • EntrySet 메서드를 호출하면 key와 value를 하나로 묶은 객체를 Set으로 반환하는 것!

컬렉션 인터페이스의 메서드

profile
개발일지

0개의 댓글