2

作成した文字列配列に入れることができるハッシュマップを配列に変換しようとしています。ただし、java.lang を取得します。Drinkar.keySet().toArray() を String[] に型変換しましたが、それでも機能しません。

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;

}
4

4 に答える 4

9

toArray(T[])を次のように使用します。

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

空の配列を引数として指定するtoArrayことで、ちょうど正しいサイズの同じ型の新しい配列を作成するように指示します。


注意: 選択できる場合は、通常ArrayList、配列の代わりに などのコレクションを操作する方が便利 (かつ安全) です。

于 2012-08-22T18:38:18.367 に答える
4

drinkar.keySet().toArray()返さObject[]ないString[]

方法の1つは次のとおりです。

ユーザーCollections.toArray(StringArry)

(また)

を反復処理し、keySet各要素を配列に追加します。

于 2012-08-22T16:48:04.650 に答える
0

別のオプションはArrayList<type>、要素を作成して追加し、返すことlist.toArray()です。これは、デスクトップの前ではないため、コードを入力できませんtoArrayで行うこととまったく同じですentryset

于 2012-08-22T18:11:04.277 に答える