leetcode 380O(1) 时间插入、删除和获取随机元素,最后一个测试样例通过不了

问题遇到的现象和发生背景

380题使用两个HashSet进行操作,但是最后一个测试样例通过不了,问题应该是随机数那里?

问题相关代码,请勿粘贴截图
class RandomizedSet {
Map map1;
Map map2;
int count=0;
    public RandomizedSet() {
        map1 = new HashMap();
        map2 = new HashMap();
    }
    
    public boolean insert(int val) {
        if(!map1.containsKey(val)){
            map1.put(val,count);
            map2.put(count,val);
            count++;
            return true;
        }
        else{
            return false;
        }
    }
    
    public boolean remove(int val) {
        if(map1.containsKey(val) && count >=2){
            Object key1 = map2.get(count-1);
            Object key2 = map1.get(val);
            map2.put(key2,map2.get(count-1));
            map2.remove(count-1);
            
            map1.remove(val);
            map1.put(key1,key2);
            count -- ;
            return true;
        }
        else if(map1.containsKey(val) && count ==1){
            map1.remove(val);
            map2.remove(0);
            count--;
            return true;
        }
        else{
            return false;
        }
    }
    
    public int getRandom() {
        return (int)map2.get(new Random().nextInt(count));
    }
}

/**
 * Your RandomizedSet object will be instantiated and called as such:
 * RandomizedSet obj = new RandomizedSet();
 * boolean param_1 = obj.insert(val);
 * boolean param_2 = obj.remove(val);
 * int param_3 = obj.getRandom();
 */

运行结果及报错内容

random不同其他操作无问题

我的解答思路和尝试过的方法

尝试了使用不同的随机函数,Random().nextInt,Math.random,

我想要达到的结果

想通过最后一个测试样例,应该如何更改