Java 如何根据HashMap值删除/替换该值?

Java 如何根据HashMap值删除/替换该值?,java,if-statement,hashmap,user-input,Java,If Statement,Hashmap,User Input,我有一个HashMap,显示停车位作为钥匙,车辆号码牌作为值,这样用户在检索车辆时输入车辆号码牌,然后我想删除/替换他们刚刚输入的号码牌的值 例如,输出将来自: Parking Space: 1, Vehicle Registration: ABCD123 为此: Parking Space: 1, Vehicle Registration: "Empty" / null tempVehicle.plate是一个字符串,用于保存用户输入的车牌号 public int key = 1;

我有一个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!");
        }

    }

我希望在if语句中添加或完全更改,无论我需要做什么来实现这一点,请提前感谢

您可以按值获取密钥,如果它存在,请将其删除

int key=-zone_1.stream()
      .filter(e -> e.getValue().equals(PLATE))
      .map(Map.Entry::getKey)
      .findFirst()
      .orElse(null);
zone_1.remove(key);
但我建议你们在做操作的时候,用平板作为钥匙


希望有帮助

如果我正确理解了您的内容,您希望根据值从映射中删除条目。在这种情况下,您可以使用
Map.values
Collection.remove
方法:

// {1=ABCD123, 2=XYZ8910} contents of the map

zone_1.values().remove("XYZ8910");

System.out.println(zone_1); // {1=ABCD123}
这是最简单的情况。但是,如果你想用数字板进行查找,你可以考虑使用板作为一个键和停车位作为一个值。所以不是

  {1=ABCD123, 2=XYZ8910}
use
  {ABCD123=1, XYZ8910=2}
这可能就是你真正想要的

  {1=ABCD123, 2=XYZ8910}
use
  {ABCD123=1, XYZ8910=2}