题意整理。

  • 给定map集合,首先遍历集合,打印所有键值对,然后进行指定的插入、移除、替换操作,最后再次遍历集合,打印所有键值对。

方法一(哈希表)

1.解题思路

  • 模拟题目要求的遍历、插入、移除、替换等操作。

动图展示: alt

2.代码实现

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");

        //遍历map,打印序号和人名
        for(Integer key:map.keySet()){
            System.out.println(key+":"+map.get(key));
        }
        
        //插入5号
        map.put(5,name);
        //移除4号
        map.remove(4);
        //替换3号
        map.replace(3,"Tommy");
        //打印空行
        System.out.println();
        
        //遍历map,打印序号和人名
        for(Integer key:map.keySet()){
            System.out.println(key+":"+map.get(key));
        }

    }
}

3.复杂度分析

  • 时间复杂度:总共需要常数次操作,所以时间复杂度为O(1)O(1)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)