반응형

Collection 정의

  • 자바에서 자료 구조를 구현한 클래스
  • 자료 구조란 자료를 저장하기 위한 구조
  • 대부분의 프로그램은 자료를 저장하기 때문에 필요에 따라서 적절한 자료 구조를 사용할지를 결정
  • 자료구조의 종류 : 리스트(list), 스택(stack), 큐(queue), 집합(set), 해시 테이블(hash table) 등
  • 자료구조는 자료를 저장하는 기능뿐만 아니라 빠르게 검색하거나 정렬할 수 있는 기능도 중요함

 

 

Vector 클래스

  • JAVA에서 가장 오래된 자료구조 구현 클래스
  • 배열의 경우, 크기가 고정되어 있기 때문에 사용이 불편함
  • Vector는 가변 크기의 배열을 구현
  • 요소의 개수가 늘어나면 자동으로 배열의 크기가 늘어남
  • 어떤 타입의 객체도 저장(기본형 데이터도 저장)

 

Vector 클래스 예제

 

 

Collection 종류

  • 자바는 컬렉션 인터페이스컬렉션 클래스로 나누어서 제공
  • java.util에 포함
  • 컬렉션 라이브러리들은 모두 제네릭 기능을 지원
  • Collection - 모든 자료 구조의 부모 인터페이스로 객체의 모임을 나타냄
  • Set - 집합(중복된 원소를 가지지 않는)을 나타내는 자료 구조
  • List - 순서가 있는 자료 구조로 중복된 원소를 가질 수 있음
  • Map - 키와 값으로 구성(사전 형태)
  • Queue - 들어오는 순서대로 나가는 자료구조

 

 

Collection Interface와 구현 클래스

  • 파란색 : 인터페이스
  • 주황색 : 구현 클래스

 

 

Map Interface와 구현 클래스

  • 파란색 : 인터페이스
  • 주황색 : 구현 클래스

 

 

Set Interface 예제

  • HashSet : 키값만 중복되지 않게

HashSet 예제
HashSet 실행 결과

 

 

  • LinkedHashSet : 입력한 순세대로

LinkedHashSet 예제
LinkedHashSet 실행 결과

 

 

  • TreeSet : 정렬

TreeSet 예제
TreeSet 실행 결과

 

 

Map Interface 예제

※ Set 인터페이스와 차이점 :  Map은 키에 해당하는 값이 존재

  • HashMap : 키 값이 중복되지 않게

HashMap 예제 (1)
HashMap 예제 (1) 실행 결과

 

 

HashMap 예제 (2)
HashMap 예제 (2) 실행 결과

 

  • LinkedHashMap : 넣은 순서대로

LinkedHashMap 예제
LinkedHashMap 실행 결과

 

 

  • TreeMap : 정렬

TreeMap 예제
TreeMap 실행 결과

 

 

List Interface 예제

ArrayList

  • 순차적인 추가/삭제는 빠르지만,
  • 중간에 있는 데이터를 추가/삭제하는 경우 LinkedList에 비해 느림
  • 추가/삭제를 반복할 경우 메모리 사용이 비효율적일 수 있음

ArrayList 예제
ArrayList 예제 실행 결과

 

LinkedList

  • 데이터를 처리하는데 있어서 개수가 계속해서 변하는 경우에 사용
  • 그 외는 대부분 ArrayList를 사용

LinkedList 예제
LinkedList 예제 실행 결과

 

 

List 정렬

Collections.sort

  • Collections 클래스 : 여러 유용한 알고리즘을 구현한 메소드들을 제공

Collections 클래스 사용 예제
Collections 클래스 실행 결과

 

  • Comparable 인터페이스를 상속한 클래스 정렬

compareTo 선언
Collections.sort
실행결과

 

 

반응형

+ Recent posts