3

我唯一想做的就是将一个数组 (temp_X) 放入一个 HashSet,但我得到了 HashSet 的错误:没有为 HashSet(List) 找到合适的构造函数

 public PSResidualReduction(int Xdisc[][], double[][] pat_cand, int k) {

        for (int i = 0; i < Xdisc.length; i++) {
            int[] temp_X;
            temp_X = new int[Xdisc[0].length];
            for (int s = 0; s < Xdisc[0].length; s++) {
                temp_X[s] = Xdisc[i][s];
            }
            HashSet<Integer> temp_XList = new HashSet<Integer>(Arrays.asList(temp_X));
        }

    }

知道如何解决吗?

4

2 回答 2

3

Arrays#asList接受类型数组,这意味着使用的所有元素都必须是Object类型而不是基元。

改用Integer数组:

Integer[] temp_X;

这将允许Arrays#asList用于对抗包装类:

HashSet<Integer> temp_XList = new HashSet<Integer>(Arrays.asList(temp_X));
于 2013-04-19T02:50:10.080 回答
1

in Arrays.asList(temp_X); temp_X必须是 Object 数组,而不是原始类型数组。并且HashSet<T>不支持原始类型。您必须将 temp_X 中的每个 int 转换为Integer并一一添加到 temp_xList

于 2013-04-19T02:54:14.927 回答