java - 我将如何根据 Value 删除/替换 HashMap 值?
问题描述
我有一个 HashMap,它显示一个停车位作为键,一个车牌作为值,我有它,以便用户在取回车辆时输入车辆的车牌,然后我想删除/ 替换他们刚刚输入的车牌值。
例如,输出将来自:
Parking Space: 1, Vehicle Registration: ABCD123
对此:
Parking Space: 1, Vehicle Registration: "Empty" / null
tempVehicle.plate 是一个字符串,其中包含用户输入的车牌。
public int key = 1;
HashMap<Integer, String> zone_1 = new HashMap<Integer, String>();
public void addToZone1(Vehicle tempVehicle){
if (key < 5) {
zone_1.put(key, tempVehicle.plate);
key++;
System.out.println(zone_1.toString());
}
else {
System.out.println("There is no more room in this Zone!");
}
}
这是我唯一能想到的,我希望这是可能的,我想我应该事先看一下。
public void pickingVehicleUp() {
System.out.println("Please enter number plate: ");
input = new Scanner(System.in);
String PLATE = input.nextLine();
if (zone_1.containsValue(PLATE)) {
}
}
我希望添加到 if 语句或完全更改,无论我需要做什么来完成这项工作,提前谢谢
解决方案
您可以按值获取密钥,如果存在则将其删除。
int key=-zone_1.stream()
.filter(e -> e.getValue().equals(PLATE))
.map(Map.Entry::getKey)
.findFirst()
.orElse(null);
zone_1.remove(key);
但我建议使用 PLATE 作为键,因为您正在基于它进行操作。
希望能帮助到你
推荐阅读
- php - 在 php 文件中将代码从 mysql 更改为 mssql
- ruby-on-rails - 验证用户不能两次选择相同角色的下拉列表
- docker - 'vc_redist.x64 未安装在 microsoft/nanoserver 映像中
- c# - C# Api Web 客户端发送重复数据而不是仅 1Data
- javascript - 为用户“userId”创建地图作为键,所有帖子都放在数组中
- pdfbox - PDFBOX2.X - 从 acroForm 读取错误数据
- c# - 我可以得到一个跨度
引用非字节类型的结构成员字段? - css - Chrome 72 是否为 css 背景 svg 破坏了“data:image/svg+xml;utf8”?
- html - 如何在 bootstrap 和 css 中让渐变占据全屏?
- django - 如何清除“连接路径位于基本路径组件之外”?