2017-02-03 1 views
0

は、私は、配列にハッシュマップたい私は、アレイそうハッシュマップを配列に変換する方法は?

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

しかし、エラーが発生したため、このハッシュマップの値を変換し、私はハッシュマップ

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

を作成し、いくつかの地図データ

それを入れて、

発生する;

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

私は配列にハッシュマップの値をしたいとき、.values.toArray()を使用することを知っているが、多分それはcorretされていません。

この方法は間違っていますか?

+0

[コレクションを配列に変換する最も簡単な方法は?](0120-18753-03) – 4castle

+0

その他の理由から、AndroidのアドバイスはMap の代わりに[SparseArray ](https://developer.android.com/reference/android/util/SparseArray.html)を使用することです。ボクシングが少なく、メモリ使用量が少なくなります。 – ephemient

+0

[Java:HashMap を配列に変換する方法]の複製があります(http://stackoverflow.com/questions/1090556/java-how-to-convert-hashmapstring-object-to-array) – faranjit

答えて

1
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を実行すると、実行時にリストの型情報が失われるため、オブジェクト配列が作成されます。

+0

私の時間を保存していただきありがとうございます –

0

コードを使用して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()]) 
+0

中間の 'ArrayList'をスキップできます。また、 'File'を使わないのはなぜですか? – 4castle

+0

@ 4castleはい、あなたは正しいと私はちょうどこれを行うためのサンプルコードを置くので、それは文字列を使用している理由です。 –

関連する問題