繁体   English   中英

如何分配ArrayList哈希图 <String,Double[]> 列出

[英]How to Assign ArrayList hashmap<String,Double[]> to List

我正在尝试将Double []的Hashmap值分配给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

如果仅转换为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);
    }

}

我认为您的问题比演职还大。 您有一个Doubles数组,并且最终想要一个Double

这不是一个强制性的问题,而是如何操纵那些Doubles给你一个Doubles的问题。

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

在您提供的代码中,您必须进行更改

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")));
        }

问题是map.get("id")将返回Double[]empid的类型为Double

你只是改变

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

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

您试图在元素为“单”双精度的列表中插入双精度类型的数组。

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

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

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

您似乎正在看的是这一行:

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

改为:

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

这将数组转换DoubleListDouble ,和addAll将增加从结果集合的所有项目的目标集合empid

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM