我想要哈希图进行排列

我创建哈希图

Map<Integer,File> selectedFiles = new Hashmap<>();


并放一些地图数据

我将此哈希图的值转换为数组,因此

File[] files = (File[]) selectedFiles.values().toArray();


但是会发生错误。

java.lang.Object[] cannot be cast to java.io.File[]


我知道,当我希望将哈希图的值进行数组化时,请使用.values.toArray(),但也许它不是正确的;

这样是错的吗?

最佳答案

Map<Integer, File> selectedFiles = new HashMap<>();
    selectedFiles.put(1, null);

    File[] files = selectedFiles.values().toArray(
            new File[selectedFiles.size()]);

    System.out.println(files);// We will get the object [Ljava.io.File;@15db9742


数组。没有参数的toArray会创建一个对象数组,因为列表的类型信息在运行时会丢失。

10-08 18:39