题目的主要信息:

  • 有一个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值,最后再按上述输出一遍即可。 alt

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());
    }
}

复杂度分析:

  • 时间复杂度:O(1)O(1),常数次操作,常数时间
  • 空间复杂度:O(1)O(1),哈希表大小最大为5,常数空间