stream.map(Map.Entry::getKey).collectors(Collectors.tolist))报出ArrayIndexOutOfBoundsException异常

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

不加锁环境下,将Map转换成List,出现了数组下标越界问题;已知Collectors.tolist不保证线程安全,那么有什么办法很好的避免下标越界问题呢?(在不加锁得前提下)

问题相关代码,请勿粘贴截图
运行结果及报错内容

exTopClass_ java.lang.ArrayIndexOutOfBoundsException
exTopMessage_ null(也有数字出现>=数组长度)

我的解答思路和尝试过的方法
我想要达到的结果

currenthashmap试试

试试下面的代码

        Map<String, Object> map = new HashMap<>();
        List<String> list = new ArrayList<>(map.keySet());

有这种语法,不过没实际用过
.collect(Collectors.toCollection(Vector::new));

用 ConcurrentHashMap 代替 HashMap,可以保证线程安全