将hashmap转换为stringarray
我试图将一个hashmap转换为一个数组,我可以将其放入一个创建的字符串数组中。 但是我得到了java.lang。 我已经将我的drinkar.keySet()。toArray()转换为String [],但它仍然无效。
public String[] receiveArrayList(){ String[] list = new String[0]; try { ois = new ObjectInputStream(socket.getInputStream()); drinkar = (HashMap<String, ArrayList>) (ois.readObject()); System.out.println(drinkar); System.out.println(Arrays.toString(drinkar.keySet().toArray())); list = (String[]) (drinkar.keySet().toArray()); for(int i = 0; i < list.length; i++){ System.out.println(list); } } catch (ClassNotFoundException ex) { System.out.println(ex); } catch (IOException ex) { System.out.println(ex); } return list; }
drinkar.keySet().toArray()
返回Object[]
而不是String[]
其中一种方式可能是:
user Collections.toArray(StringArry)
(要么)
遍历keySet
并将每个元素添加到数组中。
使用toArray(T [])为:
String[] list = drinkar.keySet().toArray(new String[0]);
通过给出一个空数组作为参数,你告诉toArray
为你创建一个相同类型的新数组,它的大小正确。
请注意:如果您可以选择,使用ArrayList
而不是数组等集合通常会更方便(也更安全)。
String st [] = hm.keySet()。toArray(new String [hm.size()]);
另一个选项是create ArrayList
并添加元素并返回list.toArray()
。 这正是entryset
在entryset
上entryset
因为不是桌面前面所以不能输入代码