산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> 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입니다. .

<시간>

예시 1:자바에서 HashMap 생성

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의 기본 작업

HashMap 클래스는 해시맵에서 다양한 작업을 수행하는 다양한 메서드를 제공합니다. 이 자습서에서 일반적으로 사용되는 몇 가지 arraylist 작업을 살펴보겠습니다.

<시간>

1. HashMap에 요소 추가

해시맵에 단일 요소를 추가하려면 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 키로 Integer1 put() 값으로 방법.

권장 독서

<시간>

2. HashMap 요소 액세스

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라는 해시맵을 만들었습니다. . 여기에서 에 액세스하고 있습니다. , 키/값 해시맵의 매핑.

권장 독서

<시간>

3. HashMap 값 변경

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()의 몇 가지 변형을 제공합니다. 방법. 자세히 알아보려면

를 방문하세요. <시간>

4. HashMap 요소 제거

해시맵에서 요소를 제거하려면 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의 다른 방법

메소드 설명
지우기() HashMap에서 모든 매핑을 제거합니다.
컴퓨팅() 지정된 키에 대한 새 값을 계산합니다.
computeIfAbsent() 키에 대한 매핑이 없으면 값을 계산합니다.
computeIfPresent() 키가 있는 경우 매핑을 위한 값을 계산합니다.
병합() 지정된 매핑을 HashMap에 병합합니다.
복제() 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을 가져와야 합니다. 이 클래스를 사용하기 위한 패키지입니다.

이 중첩 클래스는 지도의 보기(요소)를 반환합니다.

<시간>

다른 지도에서 HashMap 만들기

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

  1. 자바 연산자
  2. 자바 주석
  3. 자바 for-each 루프
  4. 자바 문자열
  5. 자바 인터페이스
  6. 자바 익명 클래스
  7. 자바 리소스 사용
  8. 자바 주석
  9. 자바 어설션
  10. 자바 벡터