HashMapの値更新方法 (Java) - 他の方法
HashMapの値をキーで更新する (Java)
日本語:
HashMapは、キーと値のペアを格納するデータ構造です。あるキーに関連付けられた値を更新するには、以下の手順に従います。
- キーの存在チェック: HashMapに指定されたキーが存在するかを確認します。存在しない場合は、新しいキーと値のペアを追加することができます。
- 値の更新: キーが存在する場合、そのキーに関連付けられた値を新しい値で上書きします。
Javaコード例:
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap <>();
// キーと値のペアを追加
map.put("apple", 10);
map.put("banana", 20);
// キーで値を更新
map.put("apple", 15);
// 更新された値を取得
int updatedValue = map.get("apple");
System.out.println("Updated value for apple: " + updatedValue);
}
}
解説:
HashMap<String, Integer>
: キーがString
型、値がInteger
型の HashMap を作成します。map.put("apple", 10)
: キー "apple" に値 10 を関連付けます。
キーの存在チェックと更新
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap <>();
// キーと値のペアを追加
map.put("apple", 10);
map.put("banana", 20);
// キーで値を更新
if (map.containsKey("apple")) {
map.put("apple", 15);
System.out.println("Updated value for apple: " + map.get("apple"));
} else {
System.out.println("Key 'apple' not found.");
}
}
}
computeIfPresent メソッドの使用
import java.util.HashMap;
import java.util.function.BiFunction;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
// キーと値のペアを追加
map.put("apple", 10);
map.put("banana", 20);
// キーで値を更新
map.computeIfPresent("apple", (key, oldValue) -> oldValue + 5);
System.out.println("Updated value for apple: " + map.get("apple"));
}
}
map.containsKey("apple")
: キー "apple" が存在するかチェックします。- 存在する場合、
map.put("apple", 15)
で値を更新します。
map.computeIfPresent("apple", (key, oldValue) -> oldValue + 5)
: キー "apple" が存在する場合、ラムダ式を使用して値を更新します。- ラムダ式は、キーと古い値を受け取り、新しい値を返します。この例では、古い値に 5 を加算して新しい値を返します。
replace メソッドの使用
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap <>();
// キーと値のペアを追加
map.put("apple", 10);
map.put("banana", 20);
// キーで値を更新
map.replace("apple", 10, 15);
System.out.println("Updated value for apple: " + map.get("apple"));
}
}
map.replace("apple", 10, 15)
: キー "apple" の値が 10 である場合にのみ、それを 15 に更新します。
merge メソッドの使用
import java.util.HashMap;
import java.util.function.BiFunction;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
// キーと値のペアを追加
map.put("apple", 10);
map.put("banana", 20);
// キーで値を更新
map.merge("apple", 5, (oldValue, newValue) -> oldValue + newValue);
System.out.println("Updated value for apple: " + map.get("apple"));
}
}
map.merge("apple", 5, (oldValue, newValue) -> oldValue + newValue)
: キー "apple" が存在する場合、ラムダ式を使用して値をマージします。
compute メソッドの使用
import java.util.HashMap;
import java.util.function.BiFunction;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
// キーと値のペアを追加
map.put("apple", 10);
map.put("banana", 20);
// キーで値を更新
map.compute("apple", (key, oldValue) -> {
if (oldValue == null) {
return 15;
} else {
return oldValue + 5;
}
});
System.out.println("Updated value for apple: " + map.get("apple"));
}
}
map.compute("apple", (key, oldValue) -> { ... })
: キー "apple" が存在するかチェックし、存在しない場合は新しい値を計算します。- ラムダ式は、キーと古い値を受け取り、新しい値を返します。この例では、古い値が
null
の場合は新しい値を計算し、そうでない場合は古い値を更新します。
java key hashmap