题目的主要信息:
- 有一个map已经添加了4个不同key值的元素,key值编号为1 2 3 4,value值为人名
- 要求首先遍历集合,并将序号与对应人名打印
- 向该map集合中插入一个编码为5姓名为输入的人名的信息
- 移除该map中的编号为4的信息
- 将map集合中编号为3的姓名信息修改为"Tommy"
- 再次遍历经过上述操作后的集合,并将序号与对应人名打印
- 第一次输出和第二次输出需用空行隔开
具体做法:
我们按照它的思路一步一步进行操作即可。
首先遍历map,我们从map的首开始遍历每一个元素,即从map.entrySet(),输出时获取key值和value值即可。
空输入一行空白。
然后使用put方法添加新元素,使用remove方法移除相应编号的元素,replace方法替换相应编号的value值,最后再按上述输出一遍即可。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.next();
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "Amy");
map.put(2, "Joe");
map.put(3, "Tom");
map.put(4, "Susan");
for(Map.Entry<Integer, String> i: map.entrySet()) //输出原哈希表
System.out.println(i.getKey() + ":" + i.getValue());
System.out.println(); //空行
map.put(5, name); //放入操作
map.remove(4); //移除编号4
map.replace(3, "Tommy"); //替换value值
for(Map.Entry<Integer, String> i: map.entrySet()) //输出处理后的哈希表
System.out.println(i.getKey() + ":" + i.getValue());
}
}
复杂度分析:
- 时间复杂度:,常数次操作,常数时间
- 空间复杂度:,哈希表大小最大为5,常数空间