java
이 튜토리얼에서는 예제를 통해 Java HashMap 클래스와 다양한 작업에 대해 알아봅니다.
HashMap
Java 컬렉션 프레임워크의 클래스는 해시 테이블 데이터 구조의 기능을 제공합니다.
키/값에 요소를 저장합니다. 한 쌍. 여기 키 각 값을 연결하는 데 사용되는 고유 식별자입니다. 지도에 표시됩니다.
HashMap
클래스는 Map 인터페이스를 구현합니다.
해시 맵을 생성하려면 java.util.HashMap
을 가져와야 합니다. 먼저 패키지. 패키지를 가져온 후 Java에서 해시맵을 만드는 방법은 다음과 같습니다.
// hashMap creation with 8 capacity and 0.6 load factor
HashMap<K, V> numbers = new HashMap<>();
위의 코드에서 numbers라는 해시맵을 만들었습니다. . 여기, K 키 유형 및 V를 나타냅니다. 값의 유형을 나타냅니다. 예를 들어,
HashMap<String, Integer> numbers = new HashMap<>();
여기에서 키 유형 String
입니다. 및 값 유형 Integer
입니다. .
import java.util.HashMap;
class Main {
public static void main(String[] args) {
// create a hashmap
HashMap<String, Integer> languages = new HashMap<>();
// add elements to hashmap
languages.put("Java", 8);
languages.put("JavaScript", 1);
languages.put("Python", 3);
System.out.println("HashMap: " + languages);
}
}
출력
HashMap: {Java=8, JavaScript=1, Python=3}
위의 예에서는 HashMap
를 생성했습니다. 명명된 언어 .
여기에서는 put()
을 사용했습니다. 해시맵에 요소를 추가하는 메소드. put()
에 대해 자세히 알아보겠습니다. 이 자습서의 뒷부분에 있는 방법입니다.
HashMap
클래스는 해시맵에서 다양한 작업을 수행하는 다양한 메서드를 제공합니다. 이 자습서에서 일반적으로 사용되는 몇 가지 arraylist 작업을 살펴보겠습니다.
해시맵에 단일 요소를 추가하려면 put()
을 사용합니다. HashMap
메소드 수업. 예를 들어,
import java.util.HashMap;
class Main {
public static void main(String[] args) {
// create a hashmap
HashMap<String, Integer> numbers = new HashMap<>();
System.out.println("Initial HashMap: " + numbers);
// put() method to add elements
numbers.put("One", 1);
numbers.put("Two", 2);
numbers.put("Three", 3);
System.out.println("HashMap after put(): " + numbers);
}
}
출력
Initial HashMap: {} HashMap after put(): {One=1, Two=2, Three=3}
위의 예에서는 HashMap
를 생성했습니다. 명명된 숫자 . 여기서는 put()
을 사용했습니다. 숫자에 요소를 추가하는 방법입니다.
진술을 주목하십시오.
numbers.put("One", 1);
여기에 String
을 전달합니다. 값 1 키로 Integer
값 1 put()
값으로 방법.
권장 독서
get()
를 사용할 수 있습니다. 해시맵에서 값에 액세스하는 방법입니다. 예를 들어,
import java.util.HashMap;
class Main {
public static void main(String[] args) {
HashMap<Integer, String> languages = new HashMap<>();
languages.put(1, "Java");
languages.put(2, "Python");
languages.put(3, "JavaScript");
System.out.println("HashMap: " + languages);
// get() method to get value
String value = languages.get(1);
System.out.println("Value at index 1: " + value);
}
}
출력
HashMap: {1=Java, 2=Python, 3=JavaScript} Value at index 1: Java
위의 예에서 표현식,
languages.get(1);
여기서 get()
메소드는 키를 사용합니다. 인수로 해당 값을 반환합니다. 키와 연결됩니다.
키에도 액세스할 수 있습니다. , 값 및 키/값 keySet()
을 사용하는 세트 뷰로서의 해시맵 쌍 , values()
및 entrySet()
방법을 각각. 예를 들어,
import java.util.HashMap;
class Main {
public static void main(String[] args) {
HashMap<Integer, String> languages = new HashMap<>();
languages.put(1, "Java");
languages.put(2, "Python");
languages.put(3, "JavaScript");
System.out.println("HashMap: " + languages);
// return set view of keys
// using keySet()
System.out.println("Keys: " + languages.keySet());
// return set view of values
// using values()
System.out.println("Values: " + languages.values());
// return set view of key/value pairs
// using entrySet()
System.out.println("Key/Value mappings: " + languages.entrySet());
}
}
출력
HashMap: {1=Java, 2=Python, 3=JavaScript} Keys: [1, 2, 3] Values: [Java, Python, JavaScript] Key/Value mappings: [1=Java, 2=Python, 3=JavaScript]
위의 예에서 language라는 해시맵을 만들었습니다. . 여기에서 키에 액세스하고 있습니다. , 값 및 키/값 해시맵의 매핑.
권장 독서
replace()
를 사용할 수 있습니다. 해시맵의 키와 관련된 값을 변경하는 방법입니다. 예를 들어,
import java.util.HashMap;
class Main {
public static void main(String[] args) {
HashMap<Integer, String> languages = new HashMap<>();
languages.put(1, "Java");
languages.put(2, "Python");
languages.put(3, "JavaScript");
System.out.println("Original HashMap: " + languages);
// change element with key 2
languages.replace(2, "C++");
System.out.println("HashMap using replace(): " + languages);
}
}
출력
Original HashMap: {1=Java, 2=Python, 3=JavaScript} HashMap using replace(): {1=Java, 2=C++, 3=JavaScript}
위의 예에서 language라는 해시맵을 만들었습니다. . 표현에 주목하세요.
languages.replace(2, "C++");
여기서 2 키가 참조하는 값을 변경합니다. 새 값 C++ 사용 .
HashMap
클래스는 또한 replace()
의 몇 가지 변형을 제공합니다. 방법. 자세히 알아보려면
해시맵에서 요소를 제거하려면 remove() 메서드를 사용할 수 있습니다. 예를 들어,
import java.util.HashMap;
class Main {
public static void main(String[] args) {
HashMap<Integer, String> languages = new HashMap<>();
languages.put(1, "Java");
languages.put(2, "Python");
languages.put(3, "JavaScript");
System.out.println("HashMap: " + languages);
// remove element associated with key 2
String value = languages.remove(2);
System.out.println("Removed value: " + value);
System.out.println("Updated HashMap: " + languages);
}
}
출력
HashMap: {1=Java, 2=Python, 3=JavaScript} Removed value: Python Updated HashMap: {1=Java, 3=JavaScript}
여기서 remove()
메소드는 키를 사용합니다. 매개변수로. 그런 다음 값을 반환합니다. 키와 연결됨 항목을 제거합니다. .
또한 특정 조건에서만 항목을 제거할 수 있습니다. 예를 들어,
remove(2, "C++");
여기에서 remove()
메소드는 항목만 제거합니다. 키 2인 경우 값 C++와 연결됨 . 2 이후 C++와(와) 연결되어 있지 않습니다. , 항목을 제거하지 않습니다.
자세한 내용은 Java HashMap remove()를 참조하십시오.
<시간>메소드 | 설명 |
---|---|
지우기() | HashMap 에서 모든 매핑을 제거합니다. |
컴퓨팅() | 지정된 키에 대한 새 값을 계산합니다. |
computeIfAbsent() | 키에 대한 매핑이 없으면 값을 계산합니다. |
computeIfPresent() | 키가 있는 경우 매핑을 위한 값을 계산합니다. |
병합() | 지정된 매핑을 HashMap 에 병합합니다. |
복제() | HashMap 의 복사본을 만듭니다. |
키() 포함 | 지정된 키가 해시맵에 있는지 확인 |
값() 포함 | Hashmap 인지 확인 지정된 값을 포함합니다 |
크기() | HashMap 의 항목 수를 반환합니다. |
빈() | Hashmap 인지 확인 비어 있습니다 |
해시맵의 각 항목을 반복하기 위해 Java for-each 루프를 사용할 수 있습니다. 키만 반복할 수 있습니다. , 값만 및 키/값 매핑 . 예를 들어,
import java.util.HashMap;
import java.util.Map.Entry;
class Main {
public static void main(String[] args) {
// create a HashMap
HashMap<Integer, String> languages = new HashMap<>();
languages.put(1, "Java");
languages.put(2, "Python");
languages.put(3, "JavaScript");
System.out.println("HashMap: " + languages);
// iterate through keys only
System.out.print("Keys: ");
for (Integer key : languages.keySet()) {
System.out.print(key);
System.out.print(", ");
}
// iterate through values only
System.out.print("\nValues: ");
for (String value : languages.values()) {
System.out.print(value);
System.out.print(", ");
}
// iterate through key/value entries
System.out.print("\nEntries: ");
for (Entry<Integer, String> entry : languages.entrySet()) {
System.out.print(entry);
System.out.print(", ");
}
}
}
출력
HashMap: {1=Java, 2=Python, 3=JavaScript} Keys: 1, 2, 3, Values: Java, Python, JavaScript, Entries: 1=Java, 2=Python, 3=JavaScript,
Map.Entry
을 사용했습니다. 위의 예에서. Map
의 중첩 클래스입니다. 지도의 보기(요소)를 반환하는 인터페이스입니다.
먼저 java.util.Map.Entry
을 가져와야 합니다. 이 클래스를 사용하기 위한 패키지입니다.
이 중첩 클래스는 지도의 보기(요소)를 반환합니다.
<시간>Java에서는 다른 맵에서 해시맵을 생성할 수도 있습니다. 예를 들어,
import java.util.HashMap;
import java.util.TreeMap;
class Main {
public static void main(String[] args) {
// create a treemap
TreeMap<String, Integer> evenNumbers = new TreeMap<>();
evenNumbers.put("Two", 2);
evenNumbers.put("Four", 4);
System.out.println("TreeMap: " + evenNumbers);
// create hashmap from the treemap
HashMap<String, Integer> numbers = new HashMap<>(evenNumbers);
numbers.put("Three", 3);
System.out.println("HashMap: " + numbers);
}
}
출력
TreeMap: {Four=4, Two=2} HashMap: {Two=2, Three=3, Four=4}
위의 예에서는 TreeMap
을 생성했습니다. evenNumbers
라는 이름의 . 표현에 주목하세요.
numbers = new HashMap<>(evenNumbers)
여기에서 HashMap
을 생성합니다. TreeMap
을 사용하여 명명된 번호 . 트리맵에 대해 자세히 알아보려면 Java TreeMap을 방문하십시오.
참고 :해시맵을 생성하는 동안 선택적 매개변수를 포함할 수 있습니다. 용량 및 부하율 . 예를 들어,
HashMap<K, V> numbers = new HashMap<>(8, 0.6f);
여기,
선택적 매개변수를 사용하지 않으면 기본 용량 16이 됩니다. 및 기본 부하 비율 0.75가 됩니다. .
java
자바 WeakHashMap 이 자습서에서는 예제를 통해 Java WeakHashMap 및 해당 작업에 대해 배웁니다. WeakHashMap과 HashMap의 차이점에 대해서도 알아보겠습니다. WeakHashMap Java 컬렉션 프레임워크의 클래스는 해시 테이블 데이터 구조의 기능을 제공합니다. 지도 인터페이스를 구현합니다. 참고 :약한 해시맵의 키는 WeakReference 유형. 약한 참조 유형의 개체는 참조가 프로그램에서 더 이상 사용되지 않는 경우 Java에서 가비지 수집될 수 있습니다. 먼저 약한 해시 맵을
자바에서 해시맵이란 무엇입니까? HashMap은 기본적으로 고유 키를 지정합니다. 해당 값에 특정 시점에서 검색할 수 있습니다. 자바 해시맵의 기능 a) 가치 키-값을 형성하여 지도에 저장할 수 있습니다. 쌍. 키를 올바른 메서드에 전달하여 값을 검색할 수 있습니다. b) 요소가 없는 경우 지도에 존재하는 경우 NoSuchElementException이 발생합니다. . c) HashMap은 객체만 저장합니다. 참조 . 그렇기 때문에 기본 데이터 유형을 사용할 수 없습니다. double 또는 int처럼. 대신 래퍼 클래스