자바에서 해시맵이란? 예제와 함께 설명
게시 됨: 2021-07-02HashMap은 Java의 컬렉션 클래스입니다. 키와 값 쌍을 저장하는 데 사용할 수 있습니다. 성능은 초기 용량과 부하율에 따라 다릅니다. HashMap에는 해시 테이블 데이터 구조를 사용할 수 있는 다양한 방법이 있습니다.
다음 기사에서는 HashMap이 무엇인지 살펴보고 예제를 통해 다양한 생성자에 대해 알아볼 것입니다.
목차
해시맵이란?
HashMap은 Map 기반의 컬렉션 클래스입니다. 키 및 값 쌍을 저장하는 데 사용합니다. HashMap Java를 HashMap<K, V>로 표시합니다. 여기서 K는 키, V는 값을 나타냅니다.
HashMap은 Hashtable 클래스와 유사합니다. 둘의 차이점은 HashMap은 동기화되지 않은 반면 Hashtable은 동기화되지 않는다는 것입니다. 또한 Hashtable과 달리 HashMap은 null 값과 null 키를 허용합니다.
HashMap은 정렬된 컬렉션이 아니므로 삽입한 순서대로 키와 값을 반환하지 않습니다. 또한 HashMap은 저장된 키와 값을 정렬하지 않습니다. HashMap 클래스와 해당 메소드를 사용하려면 java.util.HashMap(또는 상위 클래스)을 가져와야 합니다.
HashMap은 Java의 Map 인터페이스의 간단한 구현을 제공합니다. 다른 유형(예: 정수)의 인덱스를 사용하여 HashMap을 통해 저장한 키-값 쌍에 액세스할 수 있습니다. 중복 키를 사용하면 해당 키의 요소가 대체된다는 점에 유의하십시오. 또한 하나의 null 키 개체만 사용할 수 있습니다. 그러나 null 값은 여러 개일 수 있습니다.
HashMap은 복제 가능, 직렬화 가능, Map<K, V> 인터페이스를 구현합니다. AbstractMap<K, V> 클래스를 확장하고 직접 하위 클래스는 PrinterStateReasons 및 LinkedHashMap입니다.
해시맵의 특징
다음은 HashMap의 주요 기능입니다.
- java.util.package의 구성 요소입니다.
- 중복 값을 사용할 수 있지만 HashMap은 중복 키를 허용하지 않습니다. 하나의 키는 여러 값을 가질 수 없지만 여러 키는 단일 값을 가질 수 있음을 의미합니다.
- null 키는 한 번만 사용할 수 있지만 다양한 null 값을 사용할 수 있습니다.
- HashMap은 지도의 순서를 보장하지 않습니다. 따라서 주문이 일정하게 유지되는지 여부를 보장하지 않습니다.
- HashMap은 HashTable과 매우 유사하지만 HashMap이 동기화되지 않는다는 유일한 차이점이 있습니다.
- HashMap은 직렬화 가능 및 복제 가능 인터페이스를 구현합니다.
HashMap 생성자
HashMap에는 4개의 생성자가 있습니다.
1. 해시맵()
HashMap()은 로드 계수가 0.75이고 초기 용량이 16인 인스턴스를 생성하는 기본 생성자입니다.
예 :
// HashMap() 생성자의 작동 방식 표시
가져오기 java.io.*;
가져오기 java.util.*;
클래스 AddElementsToHashMap {
공개 정적 무효 메인(문자열 인수[])
{
// 언급할 필요가 없다.
// 제네릭 타입 2번
HashMap<정수, 문자열> hm1 = 새로운 HashMap<>();
// Generics를 사용하여 HashMap 초기화
HashMap<정수, 문자열> hm2
= 새로운 HashMap<정수, 문자열>();
// put 메소드를 사용하여 요소를 추가합니다.
hm1.put(1, "A");
hm1.put(2, "B");
hm1.put(3, "C");
hm2.put(4, "D");
hm2.put(5, "E");
hm2.put(6, "F");
System.out.println("hm1의 결과는 다음과 같습니다. "
+ 흠1);
System.out.println("HashMap hm2의 결과는 다음과 같습니다. "
+ hm2);
}
}
출력 :
hm1의 결과는 다음과 같습니다. {1=A, 2=B, 3=C}
hm2의 결과는 {4=D, 5=E, 6=F}입니다.
2. HashMap(int initialCapacity)
HashMap(int initialCapacity)은 로드 0.75와 특정 초기 용량을 가진 인스턴스를 생성합니다.
예 :
// HashMap(int initialCapacity) 생성자의 작동 방식 표시
가져오기 java.io.*;
가져오기 java.util.*;
클래스 AddElementsToHashMap {
공개 정적 무효 메인(문자열 인수[])
{
// 언급할 필요가 없다.
// 제네릭 타입 2번
HashMap<정수, 문자열> hm1 = 새로운 HashMap<>(10);
// Generics를 사용하여 HashMap 초기화
HashMap<정수, 문자열> hm2
= 새로운 HashMap<정수, 문자열>(2);
// put 메소드를 사용하여 요소를 추가합니다.
hm1.put(1, "A");
hm1.put(2, "B");
hm1.put(3, "C");
hm2.put(4, "D");
hm2.put(5, "E");
hm2.put(6, "F");
System.out.println("hm1의 결과는 다음과 같습니다. "
+ 흠1);
System.out.println("HashMap hm2의 결과는 다음과 같습니다. "
+ hm2);
}
}
출력 :
hm1의 결과는 다음과 같습니다. {1=A, 2=B, 3=C}
hm2의 결과는 {4=D, 5=E, 6=F}입니다.
3. HashMap(int initialCapacity, float loadFactor)
HashMap(int initialCapacity, float loadFactor)은 특정 로드 팩터와 초기 용량을 가진 인스턴스를 생성합니다.
예 :
// HashMap(int initialCapacity, float loadFactor) 생성자의 작동 방식 표시
가져오기 java.io.*;
가져오기 java.util.*;
클래스 AddElementsToHashMap {
공개 정적 무효 메인(문자열 인수[])
{
// 언급할 필요가 없다.
// 제네릭 타입 2번
HashMap<정수, 문자열> hm1
= 새로운 해시맵<>(5, 0.75f);
// Generics를 사용하여 HashMap 초기화
HashMap<정수, 문자열> hm2
= 새로운 HashMap<정수, 문자열>(3, 0.5f);
// put 메소드를 사용하여 요소 추가
hm1.put(1, "A");
hm1.put(2, "B");
hm1.put(3, "C");
hm2.put(4, "D");
hm2.put(5, "E");
hm2.put(6, "F");
System.out.println("hm1의 결과는 다음과 같습니다. "
+ 흠1);
System.out.println("HashMap hm2의 결과는 다음과 같습니다. "
+ hm2);
}
}
출력 :
hm1의 결과는 다음과 같습니다. {1=A, 2=B, 3=C}
hm2의 결과는 {4=D, 5=E, 6=F}입니다.
4. HashMap(지도맵)
HashMap(Map map)은 지정한 맵과 동일한 매핑으로 인스턴스를 생성합니다.
예 :
// HashMap(Map map) 생성자의 작동 방식 표시
가져오기 java.io.*;
가져오기 java.util.*;
클래스 AddElementsToHashMap {
공개 정적 무효 메인(문자열 인수[])
{
// 언급할 필요가 없다.
// 제네릭 타입 2번
Map<정수, 문자열> hm1 = 새로운 HashMap<>();
// Generics를 사용하여 HashMap 초기화
HashMap<정수, 문자열> hm2
= 새로운 HashMap<정수, 문자열>(hml);
// put 메소드를 사용하여 요소를 추가합니다.
hm1.put(1, "A");
hm1.put(2, "B");
hm1.put(3, "C");
hm2.put(4, "D");
hm2.put(5, "E");
hm2.put(6, "F");
System.out.println("hm1의 결과는 다음과 같습니다. "
+ 흠1);
System.out.println("HashMap hm2의 결과는 다음과 같습니다. "
+ hm2);
}
}
출력 :
hm1의 결과는 다음과 같습니다. {1=A, 2=B, 3=C}
hm2의 결과는 {4=D, 5=E, 6=F}입니다.
자바에 대해 더 알아보기
Java에는 HashMap 외에도 많은 클래스가 있습니다. 이러한 각 클래스의 핵심, 사용 및 Java에서의 통합에 대해 혼자서 배우는 것은 꽤 어렵습니다. 이 과정을 진행하는 가장 좋은 방법은 컴퓨터 과학 과정을 수강하는 것입니다.
전문 과정을 수강하면 체계적인 커리큘럼을 통해 필요한 기술과 개념을 습득할 수 있습니다. 또한 이러한 과정은 비디오, 라이브 세션 및 온라인 강의를 통해 진행되는 몰입형 학습 경험을 제공하여 이론적 기초를 더 쉽게 이해할 수 있도록 합니다.
LJMU(영국 리버풀 존 무어스 대학교) 및 IIIT-B(인도 국제 정보 기술 연구소)와 협력하여 제공되는 컴퓨터 과학 석사 프로그램을 확인할 수 있습니다 . 이 과정은 500시간 이상의 콘텐츠, 10개 이상의 라이브 강의, 30개 이상의 사례 연구를 다룹니다.
이 19개월 과정은 높은 가치 지향적이고 글로벌한 학습 경험을 약속합니다. 가장 큰 부가 가치는 전 세계의 동료들과 연결하고 참여할 수 있다는 사실에 있습니다. upGrad는 85개 이상의 국가에 40,000명 이상의 유료 글로벌 학습자를 보유하고 있음을 자랑합니다. 결과적으로, 당신은 전반적인 시야를 넓히는 새로운 문화, 새로운 의견, 새로운 관점에 노출됩니다. 뿐만 아니라, LJMU 및 IIIT-B의 전문 멘토로부터 교육을 받았으며 이들은 의심을 해결하는 데 도움이 되는 헌신적이고 개인화된 지원을 제공합니다.
이러한 이점과 함께 이 프로그램은 업계 멘토링, 네트워킹 기회 등을 포함하는 360도 직업 지원을 제공합니다.
결론
이 기사에서는 HashMap이 무엇인지, 다양한 생성자 및 예제를 통해 구현하는 방법을 배웠습니다. HashMap에는 Java로 된 수많은 응용 프로그램이 있습니다. HashMap을 사용하여 항목을 추가하고 제거하고 필요에 따라 관리할 수 있습니다.
HashMap에 대한 이 가이드에 대해 어떻게 생각하십니까? 아래 댓글 섹션에서 공유하세요.