본문 바로가기
기록하는 중/JAVA

[Java] 컬렉션

by 성장하는 요롱이 2024. 1. 11.
  컬렉션
  • 여러 원소를 하나의 그룹으로 묶어 관리해주는 객체

 

  JCF(Java Collections Framework)
  • 컬렉션을 표현하고 다루기 위한 통합된 프레임워크
  • 클래스와 인터페이스의 집합
  • 다양한 방식으로 저장, 정렬, 검색, 수정하는 도구를 제공
  • 컬렉션을 일관된 방법으로 다룰 수 있음
  • 표준화된 인터페이스 : 컬렉션의 기능을 표현(어떻게 표현되는 지와 상관없이 일관성 있게 다룸)
  • 클래스 : 인터페이스를 구현한 클래스를 제공

 

  JCF의 인터페이스
  • Set : 순서는 의미가 없으며 중복을 허용하지 않는 자료구조
  • List : 중복을 허용하고 순서에 의미가 있는 자료구조
  • Queue : List와 유사하나 원소의 삽입/삭제가 FIFO 방식
  • Map : 원소가 <key, value>의 형태이며 키는 유일해야 함

 

  JCF의 인터페이스와 클래스
  • java.util 패키지에 포함되며 제네릭 타입
  • 다루는 자료의 유형을 지정해야 함
  Set List Queue Map
해싱 HashSet     HashMap
배열   ArrayList
Vector(Stack)
   
연결리스트   LinkedList LinkedList  
해싱 +
연결리트스
LinkedHashSet     LinkedHashMap
  SortedSet     SortedMap
트리 TreeSet     TreeMap

 

  컬렉션 객체의 선언
  •  변수 선언은 해당 인터페이스 유형으로, 객체 생성은 인터페이스를 구현하는 클래스를 사용
Set<Integer> set = new HashSet< >( );
List<Integer> list = new ArrayList< >( );
List<Integer> list = new LinkedList< >( );
Queue<Integer> queue = new LinkedList< >( );
Map<String, Integer> map = new HashMap< >( );

 

  Collection<E> 인터페이스
  • Set, List, Queue에 공통으로 지원해야 하는 기능을 정의
메소드 설명
boolean add(E e) 주어진 객체를 저장.
객체가 성공적으로 저장되면 true를 리턴하고 중복 객체면 false를 리턴
boolean addAll(Collection<? extends E> c) 컬렉션 c에 있는 모든 요소들 맨 뒤에 추가
boolean remove(Object o) 현재 컬렉션에서 객체 o를 삭제
boolean removeAll(Collection<?> c) 해당 컬렉션에서 컬렉션 c와 일치하는 모든 요소를 제거, 성공하면 true, 실패하면 false 리턴
boolean retainAll(Collection<?> c) 컬렉션 c와 일치하는 데이터만 남기고 나머지는 삭제
void clear( ) 저장된 모든 객체를 삭제
boolean contains(Object o) 컬렉션이 해당 요소를 가지고 있다면 true, 아니라면 false를 리턴
boolean containsAll(Collection<?> c) 컬렉션 c의 모든 요소를 가지고 있다면 true, 아니라면 false를 리턴
boolean isEmpty( ) 컬렉션이 비어 있는지 조사
int size( ) 저장되어 있는 전체 객체 수를 리턴
int hashCode( ) hashing 알고리즘에 의해 만들어진 Integer 값을 리턴
똑같은 Object는 반드시 똑같은 hashCode를 리턴해야 하지만 반대는 필수적이지 않음.
equals와 같이 사용.
Object[ ] toArray( ) 현재 컬렉션에 저장된 데이터를 Object 배열로 반환.
Iterator<E> iterator( ) 저장된 객체를 한 번씩 가져오는 반복자를 리턴
boolean equals(Object) 동일한(논리적으로 동일) 값인지 비교, 같다면 true, 다르다면 false.
오버라이딩하여 사용,  hashCode와 같이 사용,
 equals가 참이면 hashCode도 같아야 함 

 

 

 

 

'기록하는 중 > JAVA' 카테고리의 다른 글

[Java] List 컬렉션  (0) 2024.01.12
[Java] Set 컬렉션 - JCF  (0) 2024.01.11
[Java] WatchService 인터페이스 - java.nio  (0) 2024.01.09
[Java] FileChannel 클래스 - java.nio  (0) 2024.01.09
[Java] 버퍼 - java.nio  (0) 2024.01.03