我正在创建一个存储一些数据的地图,并且如果尝试插入重复值,我希望地图抛出异常。
Map <Integer, String> temp;
temp.put(1, "hi");
temp.put(1, "hello");
Run Code Online (Sandbox Code Playgroud)
这里这个映射应该抛出一个错误,因为键“1”已经存在。它可能会抛出错误或无法编译。有没有说明功能的地图?
在放置操作之前使用包含检查不是原子操作,因此不是线程安全的。此外,每次添加条目时都必须访问地图两次。
为了避免这种情况,请使用合并或计算等函数方法之一:
map.merge(key, value, (v1, v2) -> {
throw new IllegalArgumentException("Duplicate key '" + key + "'.");
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9620 次 |
| 最近记录: |