Вам не нужно ставить null
на Map
. По умолчанию это будет null
, если вы не поставите ненулевое значение для указанной клавиши, например,
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
System.out.println(map.get("test"));
}
}
Вывод:
null
Так Лучшее, что вы можете сделать, это:
if(obj != null) {
map.put("key1", obj.getField1());
map.put("key2", obj.getField2());
}
Если вы хотите переопределить значения с помощью null
, эффективный способ сделать это будет следующим:
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
List<String> keys = List.of("key1", "key2", "key3", "key4");
Map<String, String> map = new HashMap<String, String>();
map.put("key1", "value1");
map.put("key2", "value2");
System.out.println("Before:");
for (String key : keys) {
System.out.println("Key: " + key + " Value: " + map.get(key));
}
Object obj = null;
if (obj == null) {
for (String key : map.keySet()) {
map.put(key, null);
}
}
System.out.println("After:");
for (String key : keys) {
System.out.println("Key: " + key + " Value: " + map.get(key));
}
}
}
Выход:
Before:
Key: key1 Value: value1
Key: key2 Value: value2
Key: key3 Value: null
Key: key4 Value: null
After:
Key: key1 Value: null
Key: key2 Value: null
Key: key3 Value: null
Key: key4 Value: null