본문 바로가기

Java/Java 기초

컬렉션 프레임워크

1. 컬렉션 프레임워크

(1) 알고리즘


어떤 문제가 발생했을 때 해결할 수 있는 절차 또는 순서


(2) 자료구조


의미없는 데이터를 하나의 정보로 만들어주는 알고리즘들의 집합
수집한 자료를 저장하는 방법


(3) 자바 컬렉션 프레임워크(JCF : Java Collection Framewrok): 자료구조


많은 데이터를 쉽고 효과적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스들의 집합
java.util 패키지에 포함되어 있다

 

(4) 인터페이스 분류

 

collection     List          순서를 유지하고 저장                       ArrayList, Vector, LinkedList
                                      중복 저장 가능
                      Set          순서를 유지하지 않고 저장                HashSet, TreeSet
                                      중복 저장 불가
Map                              키와 값으로 구성된 엔트리 저장        HashMap, Hashtable, TreeMap, Properties
                                      키는 중복 저장 불가능

1) List 인터페이스 extends Collection
                                데이터의 순서를 보장
                                중복된 값을 저장가능

2) 구현 클래스
a. ArrayList : 배열과 동일하게 인덱스로 데이터를 관리한다
컬렉션 클래스 중 실무에서 가장많이 사용하는 클래스이다
추가, 삭제는 상대적으로 느리지만 탐색이 빠르다
b. LinkedList : 추가, 삭제는 빠르지만 탐색이 상대적으로 느리다
c. Vector : 용량관리, 보안성 강화, 처리량 감소 -> 예전에 많이 사용하던 클래스 지금은 사용하지 않는다

public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable

List<E> : List 인터페이스를 구현하여 순서가 있는 요소를 저장하고 관리하기 위한 기본 메소드를 정의
a. RandomAccess : ArrayList가 임의 접근을 지원함(인덱스를 통한 빠른 접근)
b. Cloneable : ArrayList의 객체를 복제할 수 있음
c. java.io.Serializable : ArrayList 객체를 직렬화할 수 있음

3) 제네릭(Generic)
결정되지 않은 타입을 파라미터로 처리하고 실제 사용할 때 구체적인 타입으로 대체시키는 기능
클래스명 <T> 변수 = new 생성자<T>();

변수를 호출할 때 동일한 타입으로 호출하고 싶다면 생성자 호출시 타입을 명시하지 않는다
클래스명 <T> 변수 = new 생성자<>();

4) Iterator 
컬렉션에 저장된 데이터들을 컬렉션의 종류와 상관없이 동일한 방식으로 
가져오기 위한 인터페이스(타입)
값의 유무를 검사하거나 값을 가져올 때는 커서(cursor)를 이용하여 컬렉션을 순회하며
다음 값을 가리키고 가져올 수 있다

a. iterator()
ArrayList, HashSet 등의 컬렉션 객체를 Iterator 타입으로 변환할 때 사용하는 메소드

b. hasNext()
다음 값의 유무를 검사하여 boolean 타입으로 반환하는 메소드

c. next() 
다음 값을 가져오는 메소드, 아무값도 없다면 예외가 발생한다


'Java > Java 기초' 카테고리의 다른 글

Thread  (0) 2024.01.17
Set과 Map  (0) 2024.01.04
Object , Wrapper 클래  (0) 2024.01.02
예외처리, API  (0) 2023.12.26
내부 클래스, 익명 클래스, 람다식  (0) 2023.12.22