我对Java相对较新,遇到了一些问题。目标是将我在JVM中指定的参数,如-DmyCustomArg="my_value"
与Map进行比较,并用新值覆盖匹配的键。
所以我有两个散列表,一个是System.getProperties()
,另一个是带参数的Map,现在我想比较这两个Map,并替换匹配的值。
我已经试过了
Map properties = System.getProperties();
Map<String, String> parameter = new HashMap<>();
parameter.put("1", "value one");
parameter.put("2", "value two");
parameter.put("myCustomArg", "value three");
for (int i = 0; i < parameter.keySet().toArray().length; i++) {
if (properties.containsKey(parameter.keySet().toArray()[i])) {
parameter.replace(properties.get( ??? ))
}
}
但是现在我不能再进一步了。我如何得到匹配的值,以便替换它?我必须创建第三个Map来存储结果吗?或者有更简单的方法吗?
2条答案
按热度按时间ijxebb2r1#
欢迎你,
您可以使用以下forEach循环:
或者如果你不想使用lambda来循环条目集,你可以用下面的代码来替换map.forEach():
或者如果您只想循环按键:
rekjcdws2#
如果需要覆盖属性就足够了,在map中使用相同的键值. Map将替换以前的值。
例如: