我正在写这样的东西。 TreeMap<Double, List<double[]>[]> tm = new TreeMap<>();
在我的日食中似乎不起作用,因为init
中的代码可以识别我想要的数据类型。总是有错误。我可以这样做吗?或如何做这种事情?
private static void init(TreeMap<Double, List<Double>[]> tm, List<double[]> ll) {
for(double[] a:ll) {
if(!tm.containsKey(a[0])) {
List[] ab= new List[2];
tm.put(new Double(a[0]),ab);
tm.get(a[0])[0] = new LinkedList<double[]>();
tm.get(a[0])[1] = new LinkedList<double[]>();
}
List<Double[]>[] b = tm.get(a[0]);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TreeMap<Double, List<double[]>[]> tm = new TreeMap<>();
List<double[]> ll = new LinkedList<>();
ll.add(new double[] {-3,2.2});
ll.add(new double[] {1,5.3});
ll.add(new double[] {-1.3,4});
ll.add(new double[] {8,22});
init(tm,ll);
}
答案 0 :(得分:6)
List<double[]>[]
不正确。 List<T>
已经表明它是T
的列表(或一般的集合)。
因此,它必须为List<double[]>
但是,我看到您正在尝试将TreeMap<Double, List<double[]>>
传递给
TreeMap<Double, List<Double[]>>
无效。编译器无法将double[]
装箱(或拆箱)到Double[]
。使两者保持一致,并且应该可以工作。
答案 1 :(得分:1)
private static void init(TreeMap<Double, List<double[]>[]> tm, List<double[]> ll) {
for(double[] a:ll) {
if(!tm.containsKey(a[0])) {
List[] ab= new List[2];
tm.put(new Double(a[0]),ab);
tm.get(a[0])[0] = new LinkedList<double[]>();
tm.get(a[0])[1] = new LinkedList<double[]>();
}
List<double[]>[] b = tm.get(a[0]);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TreeMap<Double, List<double[]>[]> tm = new TreeMap<>();
List<double[]> ll = new LinkedList<>();
ll.add(new double[] {-3,2.2});
ll.add(new double[] {1,5.3});
ll.add(new double[] {-1.3,4});
ll.add(new double[] {8,22});
init(tm,ll);
}