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

我认为你有比选角更大的问题。你有一个数组Doubles,你最终想要一个Double.

这不是选角问题,而是你如何操纵那些Doubles只给你一个的问题。

也许您真正想要的是遍历该数组,然后将每个数组Double依次添加到列表中。但这确实是一个需求问题。

于 2012-06-12T09:05:14.463 回答
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

问题是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 类型的数组。

要在 empid 列表中插入一个数组,您应该以这种方式声明它:

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

然后,当您在此列表上调用 add 时,您可以传递 Double[] 类型的参数。

于 2012-06-12T09:11:45.223 回答
0

您似乎正在寻找的是这一行:

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

改为:

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

它将一个数组转换Double为一个ListDouble并将addAll结果集合中的所有项目添加到您的目标集合empid

于 2012-06-12T09:22:18.910 回答