[꼼꼼한 개발자] 꼼코더

[JAVA] - 3대 컬렉션 List, Set, Map(인터페이스) 간단하고 쉽게 이해하기(컬렉션이란?) 본문

간단하고 쉽게/JAVA

[JAVA] - 3대 컬렉션 List, Set, Map(인터페이스) 간단하고 쉽게 이해하기(컬렉션이란?)

꼼코더 2022. 12. 20. 00:07
반응형

자바에는 3대 컬렉션 List, Set, Map이 존재한다.

간단하게 짚어보도록하자!

 

❓ 컬렉션이란?

  • 요소(element)라고 불리는 가변 개수의 객체들의 저장소
  • 객체들의 컨테이너라고도 불림
  • 고정 크기의 배열을 다루는 어려움 해소
  • 다양한 객체를 삽입, 삭제 검색 할 수 있음
  • 컬렉션은 제네릭 기법으로 구현됨

🚂 List

  • 저장 : 배열 형식으로 순차적으로 저장된다.
  • 불러오기 : 자동생성된 식별자로 불러온다.
  • 식별자 : 배열의 0, 1, 2 와 같은 인덱스 형식으로 자동생성 된다.
  • 사용목적 : 주로 일반적인 데이터를 가변길의 배열로 관리할 때 사용한다.
  • 특징 : 값이 순차적으로 저장되고, 자동생성된 식별자로 값을 불러온다.
List<Integer> list = new ArrayList<>();

// 값 저장
list.add(1); // 0번째 인덱스에 3이라는 값 저장
list.add(3); // 1번째 인덱스에 3이라는 값 저장
list.add(6); // 2번째 인덱스에 6이라는 값 저장

// 값 꺼내기 > 인덱스(0, 1, 2) 자동생성 식별자
list.get(1); // 2(1)번째 인덱스 값인 '3'
list.get(3); // error > 4(3)번째 인덱스 값은 없음

🏘 Set

  • 저장 : 집합 형식으로 비순차적으로 저장된다.
  • 불러오기 : iterator, foreach 등을 사용하여 집합에서 값을 불러온다.
  • 식별자 : 값과 일치한 식별자가 자동생성 된다.
  • 사용목적 : 데이터를 수집시 데이터의 중복을 방지하고 싶을때 사용한다.
  • 특징 : 값이 비순차적으로 저장되고, 값(value)의 중복이 불가하다. > 값의 중복은 식별자의 중복이기 때문.
Set<Integer> set = new HashSet<>();

// 값 저장
set.add(1); // '1'이라는 식별자롤 '1'이라는 값 저장
set.add(2); // '2'이라는 식별자롤 '2'이라는 값 저장
set.add(2); // error > 식별자('2') 중복

// 값 꺼내기
// Set은 iterator, foreach 등을 사용
Iterator <Integer>iterator = set.iterator();
while (iterator.hasNext()) {
    System.out.println((iterator.next())); // '1'과 '2'출력
}

🗾 Map

  • 저장 : Key ↔ Value 의 관계형식으로 저장된다.
  • 불러오기 : 직접생성한 식별자(Key)로 불러온다.
  • 식별자 : 사용자가 지정한 타입으로 직접생성 한다. (자동생성 x)
  • 사용목적 : Key ↔ value로 구분된 재료 형태로 데이터를 사용하고 싶을 때
  • 특징 : 직접생성한 식별자(key)로 값(value)을 불러온다. 값(value)의 중복이 가능하다.

 


💡 추가 설명

  • 위에 예제 코드를 자세히 보면 ArrayList<>(), HashSet<>(), HashMap<>()을 볼 수 가 있다.
  • List, Set, Map는 인터페이스고 ArrayList<>(), HashSet<>(), HashMap<>()는 구현체이다.
  • 다음에는 구현체에 대해서 자세히 알아보자.
Comments