Android 如何将hashmap转换为数组?
我想要哈希映射到数组 我创建hashmapAndroid 如何将hashmap转换为数组?,android,arrays,hashmap,Android,Arrays,Hashmap,我想要哈希映射到数组 我创建hashmap Map<Integer,File> selectedFiles = new Hashmap<>(); 但是错误发生了 java.lang.Object[] cannot be cast to java.io.File[] 我知道,当我想要hashmap的值进行数组时,可以使用.values.toArray(),但它可能不正确 这种方法是错误的?请使用下面的代码将HashMap转换为数组,您可以将字符串更改为文件 //C
Map<Integer,File> selectedFiles = new Hashmap<>();
但是错误发生了
java.lang.Object[] cannot be cast to java.io.File[]
我知道,当我想要hashmap的值进行数组时,可以使用.values.toArray(),但它可能不正确
这种方法是错误的?请使用下面的代码将HashMap转换为数组,您可以将字符串更改为文件
//Creating a HashMap object
HashMap<String, String> map = new HashMap<String, String>();
//Getting Collection of values from HashMap
Collection<String> values = map.values();
//Creating an ArrayList of values
ArrayList<String> listOfValues = new ArrayList<String>(values);
// Convert ArrayList to Array
String stringArray[]=listOfValues.toArray(new String[listOfValues.size()])
//创建HashMap对象
HashMap=newHashMap();
//从HashMap获取值集合
集合值=map.values();
//创建值的ArrayList
ArrayList listOfValues=新的ArrayList(值);
//将ArrayList转换为Array
String stringArray[]=listOfValues.toArray(新字符串[listOfValues.size())
Map selectedFiles=new HashMap();
selectedFiles.put(1,空);
File[]files=selectedFiles.values().toArray(
新文件[selectedFiles.size()];
System.out.println(文件);//我们将获得对象[Ljava.io.File;@15db9742
数组。不带参数的toArray会创建一个对象数组,因为列表的类型信息在运行时丢失。的可能重复项除非您有其他原因,否则Android建议使用,而不是Map:更少的装箱,更低的内存使用率。可能的重复项可以跳过中间的
ArrayList
。另外,为什么不使用use文件
?@4castle是的,你是对的,我只是把示例代码放在这里,这就是为什么要使用字符串。谢谢你节省了我的时间
//Creating a HashMap object
HashMap<String, String> map = new HashMap<String, String>();
//Getting Collection of values from HashMap
Collection<String> values = map.values();
//Creating an ArrayList of values
ArrayList<String> listOfValues = new ArrayList<String>(values);
// Convert ArrayList to Array
String stringArray[]=listOfValues.toArray(new String[listOfValues.size()])
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