Java 맵은 무엇입니까?
자바에서 맵은 값을 값을 값으로 매핑하는 컬렉션입니다.자바 수집 프레임워크의 기본 부분이며 데이터 스토리지 및 검색에 사용됩니다. 맵은 중복 키를 허용하지 않으며 각 키가 고유해야 하는 시나리오에 이상적인 시나리오에 적합합니다. Java 맵 유형 Java는 다양한 맵 구현을 제공하지만, 가장 일반적으로 사용되는 것은 다음과 같습니다.
HashMap: 스토리지용 해시 테이블을 사용하는 매우 효율적인 맵입니다.이는 기본 운영에 대한 지속적인 성능도 제공합니다.
import java.util.HashMap;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
Map<String, Integer> hashMap = new HashMap<>();
hashMap.put("Alice", 95);
hashMap.put("Bob", 88);
hashMap.put("Charlie", 72);
hashMap.put("David", 90);
System.out.println("HashMap:");
for (Map.Entry<String, Integer> entry : hashMap.entrySet()) {
System.out.println(entry.getKey() + "'s Score: " + entry.getValue());
}
}
}
TreeMap: 이 맵은 자연적인 순서에 따라 정렬됩니다. 특정 키를 유지해야 할 때 유용합니다.
import java.util.Map;
import java.util.TreeMap;
public class TreeMapExample {
public static void main(String[] args) {
Map<String, Integer> treeMap = new TreeMap<>();
treeMap.put("Alice", 95);
treeMap.put("Bob", 88);
treeMap.put("Charlie", 72);
treeMap.put("David", 90);
System.out.println("TreeMap (sorted by keys):");
for (Map.Entry<String, Integer> entry : treeMap.entrySet()) {
System.out.println(entry.getKey() + "'s Score: " + entry.getValue());
}
}
}
LinkedHashMap: 해시맵 및 Linked 목록에서 항목이 추가된 순서를 유지합니다. 삽입 순서를 유지하는 것은 효율적입니다.
import java.util.Map;
import java.util.LinkedHashMap;
public class LinkedHashMapExample {
public static void main(String[] args) {
Map<String, Integer> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("Alice", 95);
linkedHashMap.put("Bob", 88);
linkedHashMap.put("Charlie", 72);
linkedHashMap.put("David", 90);
System.out.println("LinkedHashMap (maintains insertion order):");
for (Map.Entry<String, Integer> entry : linkedHashMap.entrySet()) {
System.out.println(entry.getKey() + "'s Score: " + entry.getValue());
}
}
}
HashTable: 해시 맵과 유사한 해시 테이블의 오래된 구현은 스레드쉬맵과 유사합니다.
import java.util.Hashtable;
import java.util.Map;
public class HashTableExample {
public static void main(String[] args) {
Map<String, Integer> hashTable = new Hashtable<>();
hashTable.put("Alice", 95);
hashTable.put("Bob", 88);
hashTable.put("Charlie", 72);
hashTable.put("David", 90);
System.out.println("HashTable (synchronized):");
for (Map.Entry<String, Integer> entry : hashTable.entrySet()) {
System.out.println(entry.getKey() + "'s Score: " + entry.getValue());
}
}
}
ConcurrentHashMap: Java 5에서 소개된 해시 맵의 스레드 버전인 해시 맵의 스레드 버전입니다.
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class ConcurrentHashMapExample {
public static void main(String[] args) {
Map<String, Integer> concurrentHashMap = new ConcurrentHashMap<>();
concurrentHashMap.put("Alice", 95);
concurrentHashMap.put("Bob", 88);
concurrentHashMap.put("Charlie", 72);
concurrentHashMap.put("David", 90);
System.out.println("ConcurrentHashMap (concurrent and efficient):");
for (Map.Entry<String, Integer> entry : concurrentHashMap.entrySet()) {
System.out.println(entry.getKey() + "'s Score: " + entry.getValue());
}
}
}
자바 맵은 주로 키 쌍을 저장하는 데 사용됩니다. 이 기능은 다음과 같은 시나리오에서 매우 귀중한 것입니다.
캐싱: 고유한 키를 사용하여 맵에 저장함으로써 데이터를 캐시할 수 있습니다.
데이터 검색: 맵은 데이터베이스 운영 및 정보 검색에서 중요한 데이터 검색을 사용하도록 설정합니다.
Counting and Grouping Elements: 자바 맵은 카운트 및 그룹 요소를 계산하는 환상적인 방식입니다.
Word Frequency Count: 키와 함께 맵을 사용하여 텍스트의 빈도수로 텍스트의 값을 빈도수 숫자를 설정할 수 있습니다.
그룹 개체: 맵은 성적에 따라 그룹화 개체를 그룹화하여 그룹화 개체를 쉽게 그룹화 개체와 같은 특정 기준에 따라 그룹화 개체를 용이하게 합니다. 데이터 구조 구현 다양한 시나리오에서 자바 맵은 더 복잡한 데이터 구조를 위한 건물 블록입니다. 예를 들어, 그래프: 맵은 그래프, 노드, 노드 및 에지와 가장자리와 모서리에 따라 그래프를 구현할 수 있습니다.
Set: 맵은 키와 위치 표시자 값 및 중복제거
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
// Map을 생성하고 문자열 키와 정수 값의 쌍을 저장합니다.
Map<String, Integer> studentScores = new HashMap<>();
// 값을 추가 (put)합니다.
studentScores.put("Alice", 95);
studentScores.put("Bob", 88);
studentScores.put("Charlie", 72);
studentScores.put("David", 90);
// 값을 가져옵니다.
int aliceScore = studentScores.get("Alice");
System.out.println("Alice's Score: " + aliceScore);
// 키가 있는지 확인합니다.
boolean hasKey = studentScores.containsKey("Eve");
System.out.println("Does Eve exist in the map? " + hasKey);
// 맵의 크기를 얻어옵니다.
int size = studentScores.size();
System.out.println("Number of students: " + size);
// 모든 학생의 점수를 출력합니다.
for (Map.Entry<String, Integer> entry : studentScores.entrySet()) {
String name = entry.getKey();
int score = entry.getValue();
System.out.println(name + "'s Score: " + score);
}
// 값을 삭제합니다.
studentScores.remove("Charlie");
// 맵을 비웁니다.
studentScores.clear();
// 맵이 비어 있는지 확인합니다.
boolean isEmpty = studentScores.isEmpty();
System.out.println("Is the map empty? " + isEmpty);
}
}
효율적인 iterator를 통해 Map을 순회하면 entrySet() 함수를 사용할 것을 고려하십시오.
매핑의 설정 보기를 제공하며 키를 통해 반복된 값을 반복하는 것보다 더 효율적으로 만들 수 있습니다. 올바른 구현 선택 특정 요구에 따라 적절한 맵 구현을 선택합니다. 만약, 스레드 안전이 필요한 경우 ConcurrentHashMap을 사용하고 삽입 순서를 유지해야 하는 경우 LinkedHashMap을 선택합니다. 적절한 키 및 값 유형 key와 value type을 현명하게 선택하세요.
적절한 equals와 hashCode 메서드를 구현해야 합니다. 가변 객체를 키로 사용하는 것은 예기치 않은 동작을 초래할 수 있으므로 주의해야 합니다. 또한, Null 값 처리 맵은 null 값을 허용하지만 null 값이 있을 때 동작을 고려하는 것이 중요합니다.
코드가 null 값을 적절하게 처리할 수 있는지 확인하십시오.
자바 프로그래밍 세계에서 자바 Map을 마스터하는 것은 모든 개발자가 길러야 할 기술입니다. 다양한 유형, 실용적인 응용 프로그램, 효율적인 데이터 저장 기능을 갖춘 맵은 수많은 시나리오를 위한 강력한 도구 세트를 제공합니다. 데이터 검색을 최적화하거나 요소를 세거나 복잡한 데이터 구조를 구축하는 경우에도 자바 맵은 신뢰할 수 있는 동료입니다. 자바 맵의 세계로 뛰어들어 적절한 구현을 선택하고 해당 기능을 활용하여 자바 응용 프로그램을 향상하십시오. 자바 맵의 마에스트로가 되기 위한 여정은 지금부터 시작됩니다!
Spring[스프링]_Buffer_최적의 성능을 위한 Java 입출력 버퍼 활용 (2) | 2023.10.19 |
---|---|
Spring[스프링]_ImmutablePair_다중객체반환과 불변성유지 (0) | 2023.10.17 |
Spring - 순수 JPA와 DTO를 이용한 게시판 예제 (2) | 2023.06.07 |
자바 개발 환경 구축하기: 자바 다운로드 및 JDK 경로 지정 방법 (0) | 2023.05.28 |
Spring[스프링]_제이쿼리템플릿(jQuery Template)을 이용한 HTML구문 삽입 (0) | 2023.02.17 |
댓글 영역