编程要求 请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下: 向menuDict集合中添加一道菜名lamb,它的价格是50; 获取menuDict集合中的fish的价格并打印出来; 将menuDict集合中的fish的价格改为100; 删除menuDict集合中noodles这道菜; 输出新的menuDict菜单。 package step5; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Map<String, Integer> menuDict = new HashMap<>(); Scanner sc = new Scanner(System.in); for (int i = 0; i < 5; i++) { menuDict.put(sc.next(),sc.nextInt()); } /********** Begin **********/ /********** End **********/ } }
时间: 2025-05-23 16:24:00 浏览: 25
以下是基于需求的具体实现方案,涵盖了向`menuDict`集合添加元素、获取价格、修改价格、删除元素以及输出最终菜单的功能:
### 完整代码实现
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class MenuManager {
public static void main(String[] args) {
Map<String, Integer> menuDict = new HashMap<>();
Scanner sc = new Scanner(System.in);
// 初始化菜单数据
for (int i = 0; i < 5; i++) {
String item = sc.next();
int price = sc.nextInt();
menuDict.put(item, price);
}
/********** Begin **********/
// 1. 向menuDict集合中添加lamb菜品及其价格50
menuDict.put("lamb", 50);
// 2. 获取并打印fish的价格
Integer fishPrice = menuDict.get("fish");
if (fishPrice != null) {
System.out.println("Fish Price: " + fishPrice);
} else {
System.out.println("Menu does not contain 'fish'.");
}
// 3. 将fish的价格改为100
if (menuDict.containsKey("fish")) {
menuDict.put("fish", 100);
}
// 4. 删除noodles菜品
menuDict.remove("noodles");
// 5. 输出更新后的menuDict菜单
System.out.println("Updated Menu:");
for (Map.Entry<String, Integer> entry : menuDict.entrySet()) {
System.out.println(entry.getKey() + "=" + entry.getValue());
}
/********** End **********/
}
}
```
---
### 功能解析
#### 1. **向`menuDict`集合中添加`lamb`菜品及其价格50**
- 使用`put()`方法可以轻松地将键值对插入到`HashMap`中。如果键已存在,则会覆盖原有值[^3]。
#### 2. **获取并打印`fish`的价格**
- 利用`get(Object key)`方法来查找指定键的值。如果键不存在于`HashMap`中,则返回`null`[^3]。因此,在访问之前需验证返回值是否为`null`以防止潜在错误。
#### 3. **将`fish`的价格改为100**
- 可再次调用`put()`方法完成此操作。由于`put()`具有覆盖特性,所以无需额外逻辑即可直接更改现有记录[^3]。
#### 4. **删除`noodles`菜品**
- 借助`remove(Object key)`函数可以从`HashMap`里移除特定项。一旦删除成功,它还会返回被删掉的那个值;而假如目标根本不在表内,则反馈`null`[^3]。
#### 5. **输出更新后的`menuDict`菜单**
- 遍历整个`entrySet()`集合能够逐一读取每一对键值组合,并按照预设格式展示出来[^3]。
---
### 注意事项
为了确保程序运行无误,请注意输入的数据量应匹配初始化循环次数(即本例中的五次),否则可能导致异常中断或未完全填充预期内容的情况发生。
---
阅读全文