English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 가이드

Java 흐름 제어

Java 배열

Java 동적객체(I)

Java 동적객체(II)

Java 동적객체(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map집합

Java Set집합

Java 입력출력(I/O)

Java Reader/Writer

Java 다른 주제

Java HashMap computeIfAbsent() 사용 방법 및 예제

Java HashMap 메서드

Java HashMap의 computeIfAbsent() 메서드는 새로운 값을 계산하며, 해당 키가 해시 매핑에 어떤 값도 연결되어 있지 않으면, 지정된 키와 연결합니다.

computeIfAbsent() 메서드의 문법은 다음과 같습니다:

hashmap.computeIfAbsent(K key, Function remappingFunction)

computeIfAbsent() 매개변수

computeIfAbsent() 메서드는 두 개의 매개변수를 가집니다:

  • - 与计算值关联的键

  • 와 계산된 값과 매핑된 키 - remappingFunction지정된

주의사항새 값을 계산하는 함수

:remapping function은 두 개의 매개변수를 받을 수 없습니다.

  • computeIfAbsent()가 반환하는 값

  • 지정된 키의 새 값을 계산하는 함수

주의사항:remappingFunction 결과가 null이면 지정된 키의 매핑을 제거합니다의 매핑.

예제1:Java HashMap의 computeIfAbsent()

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    // HashMap을 생성합니다
    HashMap<String, Integer> prices = new HashMap<>();
    // HashMap에 항목을 삽입합니다
    prices.put("Shoes", 200);
    prices.put("Bag", 300);
    prices.put("Pant", 150);
    System.out.println("HashMap: " + prices);
    // 셔츠의 가치를 계산합니다
    int shirtPrice = prices.computeIfAbsent("Shirt", key -> 280);
    System.out.println("셔츠의 가격: " + shirtPrice);
    // HashMap을 업데이트하여 출력합니다
    System.out.println("업데이트된 HashMap: "); + prices);
  }
}

출력 결과

HashMap: {Pant=150, Bag=300, Shoes=200}
셔츠의 가격: 280
업데이트된 HashMap: {Pant=150, Shirt=280, Bag=300, Shoes=200}

위의 예제에서는 named prices의 해시 매핑을 생성했습니다. 주의할 점은

prices.computeIfAbsent("Shirt", key -> 280)

이곳에서는

  • 키 -> 280 - 는 람다 표현식입니다. 그 값을 반환합니다280. 람다 표현식에 대한更多信息는 다음을 참조하세요Java Lambda 표현식

  • prices.computeIfAbsent() -  람다 표현식이 반환하는 새 값과 Shirt의 매핑을 연결합니다. 이는 Shirt가 hashmap에 아무 값도 매핑되지 않았기 때문에 가능합니다.

예제2:키가 이미 존재하면 computeIfAbsent()를 사용합니다

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    // HashMap을 생성합니다
    HashMap<String, Integer> prices = new HashMap<>();
    // HashMap에 항목을 삽입합니다
    prices.put("Shoes", 180);
    prices.put("Bag", 300);
    prices.put("Pant", 150);
    System.out.println("HashMap: " + prices);
    //Shoes의 매핑이 이미 존재합니다
    //Shoes의 새 값을 계산하지 않습니다
    int shoePrice = prices.computeIfAbsent("Shoes", (key) -> 280);
    System.out.println("신발 가격: " + shoePrice);
    //업데이트된 HashMap을 출력
    System.out.println("업데이트된 HashMap: "); + prices);
  }
}

출력 결과

HashMap: {Pant=150, Bag=300, Shoes=180}
신발 가격: 180
업데이트된 HashMap: {Pant=150, Bag=300, Shoes=180}

위 예제에서 Shoes의 매핑이 이미 해시 매핑에 존재합니다. 따라서 computeIfAbsent() 메서드는 Shoes의 새로운 값을 계산하지 않습니다.

추천 읽기

Java HashMap 메서드