converting hashmap to stringarray

僤鯓⒐⒋嵵緔 提交于 2019-12-06 11:48:14

问题


I am trying to convert a hashmap into an array, that I can put in a created string array. I however get java.lang. I have typeconverted my drinkar.keySet().toArray() to String[], but it will still not work.

public String[] receiveArrayList(){

String[] list = new String[0];

    try {
        ois = new ObjectInputStream(socket.getInputStream());
        drinkar = (HashMap<String, ArrayList<String>>) (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;

}

回答1:


drinkar.keySet().toArray() returns Object[] not String[]

One of the way may be:

user Collections.toArray(StringArry)

(or)

Iterate through the keySet and add each element to array.




回答2:


Use toArray(T[]) as:

String[] list = drinkar.keySet().toArray(new String[0]);

By giving an empty array as the argument, you tell toArray to create a new array of the same type for you that will be just of the correct size.


Just a note: If you can choose, it's usually more convenient (and safer) to work with collections such as ArrayList instead of arrays.




回答3:


String st[]=hm.keySet().toArray(new String[hm.size()]);




回答4:


Another option is create ArrayList<type> and add elements and return list.toArray(). This is exactly what toArray does on entryset Can not type code since not front of desktop



来源:https://stackoverflow.com/questions/12077769/converting-hashmap-to-stringarray

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!