Java中数组列表的数组

Java中数组列表的数组,java,arrays,list,Java,Arrays,List,我正在写这样的东西。似乎TreeMap tm=newtreemap()在我的eclipse中不起作用,因为init中的代码可以识别我想要的数据类型。错误总是有的。我能做这个吗?或者怎么做这种事情 private static void init(TreeMap<Double, List<Double>[]> tm, List<double[]> ll) { for(double[] a:ll) { if(!tm.containsKey(

我正在写这样的东西。似乎
TreeMap tm=newtreemap()
在我的eclipse中不起作用,因为
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);
}
私有静态void init(TreeMap tm,列表ll){
对于(双[]a:ll){
如果(!tm.containsKey(a[0])){
列表[]ab=新列表[2];
tm.put(新双精度(a[0]),ab);
tm.get(a[0])[0]=newLinkedList();
tm.get(a[0])[1]=新的LinkedList();
}
List[]b=tm.get(a[0]);
}
}
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
TreeMap tm=新的TreeMap();
List ll=新的LinkedList();
ll.add(新的双[]{-3,2.2});
ll.add(新的双[]{1,5.3});
ll.add(新的双[]{-1.3,4});
ll.add(新的双[]{8,22});
init(tm,ll);
}
列表[]
不正确<代码>列表已指示它是
T
的列表(或集合)

所以,它必须是
List

但是,我看到您正试图将
树映射传递给
TreeMap
这不起作用。编译器无法将
double[]
装箱(或取消装箱)到
double[]
。使两者保持一致,它就会工作。

私有静态void init(TreeMap tm,List ll){
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);
}
对于(双[]a:ll){ 如果(!tm.containsKey(a[0])){ 列表[]ab=新列表[2]; tm.put(新双精度(a[0]),ab); tm.get(a[0])[0]=newLinkedList(); tm.get(a[0])[1]=新的LinkedList(); } List[]b=tm.get(a[0]); } } 公共静态void main(字符串[]args){ //TODO自动生成的方法存根 TreeMap tm=新的TreeMap(); List ll=新的LinkedList(); ll.add(新的双[]{-3,2.2}); ll.add(新的双[]{1,5.3}); ll.add(新的双[]{-1.3,4}); ll.add(新的双[]{8,22}); init(tm,ll); }
我不建议使用
Double
作为映射键。舍入错误将给出完全不同的结果。我可以将列表数组作为值吗?@WeihengLi By array of list,您的意思是类似于
list[]
。在这种情况下,您不能将其实例化为
新列表[3]
,因为不允许创建通用数组。此代码可能会对您有所帮助。请尝试在您的答案中添加更多详细信息,而不是使用List[]>tm use List[]>tmHi。这里通常不赞成只发布“代码转储”,即使代码提供了答案