English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java HashMap의 computeIfAbsent() 메서드는 새로운 값을 계산하며, 해당 키가 해시 매핑에 어떤 값도 연결되어 있지 않으면, 지정된 키와 연결합니다.
computeIfAbsent() 메서드의 문법은 다음과 같습니다:
hashmap.computeIfAbsent(K key, Function remappingFunction)
computeIfAbsent() 메서드는 두 개의 매개변수를 가집니다:
키 - 与计算值关联的键
와 계산된 값과 매핑된 키 - remappingFunction키지정된
주의사항새 값을 계산하는 함수
computeIfAbsent()가 반환하는 값
지정된 키의 새 값을 계산하는 함수
주의사항:remappingFunction 결과가 null이면 지정된 키의 매핑을 제거합니다키의 매핑.
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에 아무 값도 매핑되지 않았기 때문에 가능합니다.
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의 새로운 값을 계산하지 않습니다.
추천 읽기
HashMap compute() - 지정된 키의 값을 계산
HashMap computeIfPresent() - 지정된 키가 값에 매핑되어 있다면, 값을 계산
Java HashMap merge() - compute()와 동일한 작업을 수행