Java HashSet到数组

时间:2013-11-28 22:42:35

标签: java arrays set hashset

我正在尝试将HashSet转换为双打数组。是的我有一个主要的方法和类定义,我刚刚包含了我导入的内容以及这个特定函数的代码。

这是出现的错误:

Ass10.java:148: error: no suitable method found for toArray(double[])
                rtrn = s.toArray(rtrn);

以下是代码:

import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Set;
import java.util.HashSet;


public static double[] negated(double[] a) {
        Set<Double> s = new HashSet<Double>();
        for(double x : a) {
            s.add(x);
        } for(double x : s) {
            if(s.contains(-x) == false) {
                s.remove(x);
            }
        }
        double[] rtrn = new double[s.size()];
        rtrn = s.toArray(rtrn);
        return rtrn;
        }

3 个答案:

答案 0 :(得分:1)

在这种情况下,您无法使用原始数组,因为Java中的数组没有自动装箱。使用Double[]即可。

答案 1 :(得分:1)

Java集合使用引用类型。函数Collection.toArray(T[] a)具有通用引用类型的签名。因此,您需要传递引用类型数组而不是原始数组。原始类型double的相应引用类型是Double

Double[] rtrn = new Double[s.size()];
rtrn = s.toArray(rtrn);

答案 2 :(得分:0)

这是一个编译时错误,对吗?尝试使用Double []而不是double []。