post-custom-banner

Code.presso Java 웹 개발 트랙 체험단 활동 2주차 두번째 코스로, 지난 시간에 이어 마지막으로 컬렉션 프레임워크인 Map, Set에 대해 학습한 내용을 정리해보려고 한다!

강의 제목은 "Java Programming 초급" 으로, 자세한 정보는 👇🏻아래👇🏻 링크를 통해 확인할 수 있다.

📌 Java Programming 초급 - 강의 정보

✋🏻 포스팅 내 사용된 사진 파일들의 저작권은 모두 코드프레소에 있으며, 강의자료 공유 및 업로드는 불가능합니다.


🏷 Map 자료구조 컬렉션 클래스

✔️ Map 자료구조 데이터

Map 자료 구조 데이터로 한 사람의 정보를 저장하는 것을 예로 들 수 있다.

personal_info = {'name':'sorzzzzy', 'gender':'Female', 'height':'155', 'nationality':'Korea'}

➡️ 이와 같이 하나의 데이터를 설명하기 위한 여러 속성 정보가 필요하며,
➡️ 속성 간에는 순서가 필요하지 않다.
➡️ 또한 동일한 속성으로 여러 개의 값이 존재하지 않는다.


✔️ Map<K,V> 인터페이스에 대한 이해

Map<K,V> 인터페이스는 Map 자료구조를 위해 정의된 인터페이스이다.

이와 같이 MapPair(Key-Value) 형식으로 데이터 여러 건을 하나의 객체로 관리한다.

  • KeyValue 를 찾기 위한 고유한 주소의 역할을 수행한다.
  • KeyList<E> 인터페이스의 인덱스와는 다르게 순서 개념이 존재하진 않는다.
  • Pair(Key-Value) 형태로 데이터가 저장되는 구조로, Collection<E> 인터페이스를 상속받지 않고 독립적으로 정의된다.
  • Key 는 중복을 허용하지 않고, Value 는 중복을 허용한다.

또한 Map<K,V> 인터페이스는 Collection<E> 인터페이스를 상속받지 않고 독립적으로 정의된 인터페이스이다.

Map<K,V> 인터페이스의 메소드를 살펴보자.
전체 객체를 다루는 메서드는 List<E> 인터페이스와 유사하지만,
개별 데이터를 다루는 메서드는 List<E> 인터페이스와 다른데, 이는 구조적으로 Pair(Key-Value) 형태이기 때문이다.

📌 HashMap<K,V>
대표적인 Map 자료구조의 컬렉션 클래스로는 HashMap<K,V> 이 있다.
Key 값이 Hash 알고리즘을 이용해 구조화 되어있어 Key 값을 이용한 검색 속도가 빠르다는 특징이 있으며, java.util 패키지에 존재한다.


✔️ HashMap<K,V> 객체의 생성과 데이터 추가

1️⃣ HashMap<K,V> 객체 생성

HashMap<K,V> 객체는 제네릭을 이용해 객체에서 사용할 KeyValue 의 데이터 타입을 지정해주어야 한다.

HashMap 클래스는 java.util 패키지에 존재하기 때문에, 이를 가져오기 위해서는 클래스가 존재하는 전체 path 정보를 넣어주어야 한다.
➡️ import java.util.HashMap

import java.util.HashMap;

public class NewTubeSystem {
	public static void main(String[] args) {
    	HashMap<String, String> sorzzzzy = new HashMap<>();
        System.out.println(sorzzzzy);
    }
}

➡️ sorzzzzy 라는 객체를 만들어보았다😉
➡️ result = {}


2️⃣ HashMap<K,V> 객체의 데이터 추가

  1. V put(K key, V value)
  • 지정한 타입으로 Key, Value 가 생성된다.
  • 만약 Key 가 이미 존재하는 경우, 기존의 값을 반환하고 새로운 값으로 업데이트된다.
  • Key, Value 모두 특정 클래스에 대한 객체를 사용할 수 있다.
  • Key, Value 모두 null 값이 허용된다.
  • 데이터를 추가할 때 주의할 점은, 객체 생성 시 지정한 데이터 타입과 동일한 Pair를 추가해야 한다는 것이다!

  1. void putAll(Map<? extends K,? extends V> m)
  • 인자로 전달 받은 Map 객체의 모든 Pair 데이터를 추가한다.
  • 객체 생성 시 지정한 데이터 타입과 동일한 Pair를 추가해야 한.

✔️ HashMap<K,V> 객체의 데이터 탐색과 변경

1️⃣ HashMap<K,V> 객체의 데이터 탐색

  1. V get(Object key)
System.out.println(sorzzzzy.get("name");
  • 전달받은 Key 에 매핑 된 Value 를 반환한다.

  1. default V getOrDefault(Object key, V defaultValue)
System.out.println(sorzzzzy.getOrDefault("name", "Unknown");
  • 전달받은 Key 에 매핑 된 Value 를 반환한다.
  • 단, 존재하지 않은 Key 의 경우 인자로 전달받은 defaultValue 를 반환한다.

  1. boolean containsKey(Object key)
System.out.println(sorzzzzy.containsKey("name");
  • 전달받은 Key 가 객체에 존재하는지 확인 후 수행 결과를 boolean 형태로 반환한다.

  1. boolean containsValue(Object Value)
System.out.println(sorzzzzy.containsValue("jinsol");
  • 전달받은 Value 가 객체에 존재하는지 확인 후 수행 결과를 boolean 형태로 반환한다.

  1. Collection<V> values()
  • 객체에 존재하는 모든 ValueCollection 객체 형태로 반환한다.

  1. Set<K> keySet()
  • 객체에 존재하는 모든 KeySet 객체 형태로 반환한다.

  1. int size()
  • 객체에 존재하는 모든 Pair 데이터의 개수를 조회한다.

2️⃣ HashMap<K,V> 객체의 데이터 변경

  1. void clear()
sorzzzzy.clear();
  • 객체 내 모든 데이터를 제거한다.

  1. V remove(Object key)
  • 전달받은 Key 의 데이터 Pair를 제거하고, 해당 Pair 의 Value 를 반환한다.

  1. boolean remove(Object key, Object Value)
  • 전달받은 KeyValue모두 일치하는 Pair를 제거하고, 수행 결과를 boolean 타입으로 반환한다.

🏷 Set 자료구조 컬렉션 클래스

✔️ Set 자료구조 데이터


✔️ Set<E> 인터페이스에 대한 이해


✔️ HashSet<E> 객체의 생성과 데이터 추가

1️⃣ HashSet<E> 객체의 생성


2️⃣ HashSet<E> 객체의 데이터 추가


✔️ HashSet<E> 객체의 데이터 탐색과 변경

1️⃣ HashSet<E> 객체의 데이터 탐색


2️⃣ HashSet<E> 객체의 데이터 변경


✔️ HashSet<E> 객체의 데이터 정렬

1️⃣ HashSet<E> 객체의 데이터 정렬


총 4번의 포스팅을 거쳐 Code.presso Java 웹 개발 트랙 체험단 활동 2주차 두번째 코스 "Java Programming 초급" 도 이렇게 끝이 났다!!

코드프레소 홈페이지(https://www.codepresso.kr/)에는 오늘 포스팅한 컬렉션 프레임워크 Map, Set 관련 강의뿐만 아니라 다양한 강의들이 개설되어 있으니 모두 한번 씩 살펴보고 수강해보면 좋을 것 같다😃

profile
Backend Developer
post-custom-banner

0개의 댓글