[Code.presso] 2주차-2. Java 프로그래밍 초급(4)
Code.presso Java 웹 개발 트랙 체험단 활동 2주차 두번째 코스로, 지난 시간에 이어 마지막으로 컬렉션 프레임워크인 Map, Set에 대해 학습한 내용을 정리해보려고 한다!
강의 제목은 "Java Programming 초급" 으로, 자세한 정보는 👇🏻아래👇🏻 링크를 통해 확인할 수 있다.
✋🏻 포스팅 내 사용된 사진 파일들의 저작권은 모두 코드프레소에 있으며, 강의자료 공유 및 업로드는 불가능합니다.
🏷 Map 자료구조 컬렉션 클래스
✔️ Map 자료구조 데이터
Map
자료 구조 데이터로 한 사람의 정보를 저장하는 것을 예로 들 수 있다.
personal_info = {'name':'sorzzzzy', 'gender':'Female', 'height':'155', 'nationality':'Korea'}
➡️ 이와 같이 하나의 데이터를 설명하기 위한 여러 속성 정보가 필요하며,
➡️ 속성 간에는 순서가 필요하지 않다.
➡️ 또한 동일한 속성으로 여러 개의 값이 존재하지 않는다.
✔️ Map<K,V>
인터페이스에 대한 이해
Map<K,V>
인터페이스는 Map
자료구조를 위해 정의된 인터페이스이다.
이와 같이 Map
은 Pair(Key-Value)
형식으로 데이터 여러 건을 하나의 객체로 관리한다.
Key
는Value
를 찾기 위한 고유한 주소의 역할을 수행한다.Key
는List<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>
객체는 제네릭을 이용해 객체에서 사용할 Key
와 Value
의 데이터 타입을 지정해주어야 한다.
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>
객체의 데이터 추가
V put(K key, V value)
- 지정한 타입으로
Key
,Value
가 생성된다. - 만약
Key
가 이미 존재하는 경우, 기존의 값을 반환하고 새로운 값으로 업데이트된다. Key
,Value
모두 특정 클래스에 대한 객체를 사용할 수 있다.Key
,Value
모두null
값이 허용된다.- 데이터를 추가할 때 주의할 점은, 객체 생성 시 지정한 데이터 타입과 동일한 Pair를 추가해야 한다는 것이다!
void putAll(Map<? extends K,? extends V> m)
- 인자로 전달 받은
Map
객체의 모든 Pair 데이터를 추가한다. - 객체 생성 시 지정한 데이터 타입과 동일한 Pair를 추가해야 한.
✔️ HashMap<K,V>
객체의 데이터 탐색과 변경
1️⃣ HashMap<K,V>
객체의 데이터 탐색
V get(Object key)
System.out.println(sorzzzzy.get("name");
- 전달받은
Key
에 매핑 된Value
를 반환한다.
default V getOrDefault(Object key, V defaultValue)
System.out.println(sorzzzzy.getOrDefault("name", "Unknown");
- 전달받은
Key
에 매핑 된Value
를 반환한다. - 단, 존재하지 않은
Key
의 경우 인자로 전달받은defaultValue
를 반환한다.
boolean containsKey(Object key)
System.out.println(sorzzzzy.containsKey("name");
- 전달받은
Key
가 객체에 존재하는지 확인 후 수행 결과를boolean
형태로 반환한다.
boolean containsValue(Object Value)
System.out.println(sorzzzzy.containsValue("jinsol");
- 전달받은
Value
가 객체에 존재하는지 확인 후 수행 결과를boolean
형태로 반환한다.
Collection<V> values()
- 객체에 존재하는 모든
Value
를Collection
객체 형태로 반환한다.
Set<K> keySet()
- 객체에 존재하는 모든
Key
를Set
객체 형태로 반환한다.
int size()
- 객체에 존재하는 모든 Pair 데이터의 개수를 조회한다.
2️⃣ HashMap<K,V>
객체의 데이터 변경
void clear()
sorzzzzy.clear();
- 객체 내 모든 데이터를 제거한다.
V remove(Object key)
- 전달받은
Key
의 데이터 Pair를 제거하고, 해당 Pair 의Value
를 반환한다.
boolean remove(Object key, Object Value)
- 전달받은
Key
와Value
가 모두 일치하는 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 관련 강의뿐만 아니라 다양한 강의들이 개설되어 있으니 모두 한번 씩 살펴보고 수강해보면 좋을 것 같다😃
Author And Source
이 문제에 관하여([Code.presso] 2주차-2. Java 프로그래밍 초급(4)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sorzzzzy/Code.presso-2주차-2.-Java-프로그래밍-초급4저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)