1

Double[] の Hashmap 値を List に割り当てようとしていますが、エラーがスローされます。

「List 型のメソッド add(Double) は、引数 (Double[]) には適用できません」

ArrayList<HashMap<String, Double[]>> arl = (ArrayList<HashMap<String, Double[]>>) pd.getArrayList();

List<Double> empid = new ArrayList<Double>();
Iterator itr = arl.iterator();

while (itr.hasNext()) {
    HashMap<String, Double[]> map = (HashMap<String, Double[]>) itr.next();
    empid.add(map.get("id")));
}

Double[]にキャストするにはどうすればよいDouble.Requestですか?

4

6 に答える 6

1

に変換することList<Double>が唯一のオプションである場合は、次のことを試してください。

ArrayList<HashMap<String, Double[]>> arl = (ArrayList<HashMap<String, Double[]>>) pd.getArrayList();

List<Double> empid = new ArrayList<Double>();
Iterator itr = arl.iterator();

while (itr.hasNext()) {
    HashMap<String, Double[]> map = (HashMap<String, Double[]>) itr.next();
    for (Double d : map.get("id") {
        empid.add(d);
    }

}
于 2012-06-12T09:12:27.953 に答える
0

問題はmap.get("id")戻りDouble[]ますがempid、タイプはDoubleです。

あなたはただ変わる

List<Double> empid = new ArrayList<Double>();

List<Double[]> empid = new ArrayList<Double[]>();
于 2012-06-12T09:11:29.747 に答える
0

要素が「単一」のDoubleであるリストにDouble型の配列を挿入しようとしています。

empidリストに配列を挿入するには、次のように宣言する必要があります。

List<Double[]> empid = new ArrayList<Double[]>();

次に、このリストでaddを呼び出すときに、Double[]型の引数を渡すことができます。

于 2012-06-12T09:11:45.223 に答える
0

提供するコードでは、変更する必要があります

List<Double> empid = new ArrayList<Double>();

List<Double[]> empid = new ArrayList<Double[]>();

コンパイルできるようにします。しかし、これはあなたが達成しようとしているものではないと思います。それはあなたがしたいことですか?:

        ArrayList<HashMap<String, Double[]>> arl = (ArrayList<HashMap<String, Double[]>>) pd.getArrayList();
        List<Double> empid = new ArrayList<Double>();
        Iterator itr = arl.iterator();
        while (itr.hasNext()) {
            HashMap<String, Double[]> map = (HashMap<String, Double[]>) itr.next();
            empid.addAll(Arrays.asList(map.get("id")));
        }
于 2012-06-12T09:10:21.073 に答える
0

キャスティングよりも大きな問題があると思います。の配列がありDoubles、最終的には単一の が必要ですDouble

これはキャストの問題ではなく、それらDoublesを操作して 1 つだけにする方法の問題です。

おそらく、あなたが本当に望んでいるのは、その配列を繰り返し処理し、それぞれDoubleを順番にリストに追加することです。しかし、これは実際には要件の問題です。

于 2012-06-12T09:05:14.463 に答える
0

あなたが見ているように見えるのは、この行です:

empid.add(map.get("id")));

これに変更:

empid.addAll(Arrays.asList(map.get("id"))));

の配列を の に変換DoubleListDouble結果addAllのコレクションのすべてのアイテムをターゲット コレクションに追加しますempid

于 2012-06-12T09:22:18.910 に答える