在ArrayList java中创建数组

时间:2016-03-11 14:23:20

标签: java arrays inheritance arraylist

我正在尝试在一个ArrayList中创建两种不同类型的数组。相应地设置构造函数(我认为),但是当它实例化它们时,我收到一条错误消息“arr无法解析”。我慢慢地,但肯定绕过弯道。如何让ArrayList接受带有双精度的简单数组? (它还必须接受其他类型,因此它不仅仅是更改ArrayList本身的问题。)这是构造函数和代码的代码。 main ArrayList:

class NumList implements Num
{
    private ArrayList<Num> n1;

    public NumList( NumDouble[] doubleArray ) 
    {           
       n1 = new ArrayList<Num>();
       for( NumDouble d : doubleArray ) 
            n1.add( d );
    }

    public NumList(NumFloat[] floatArray ) 
    {
       n1 = new ArrayList<Num>();
       for( NumFloat d : floatArray ) 
            n1.add( d );

    }
// methods of Num interface
}

我的测试类看起来像这样 -

import java.util.ArrayList;

public class Demo extends NumList {
    public Demo(NumDouble[] doubleArray) {  
        //suggested automatically to add super here
        super(doubleArray);

        double[] arr = {(1.1), (2.2), (3.3), (4.4)};
        ArrayList<Num> n1 = new ArrayList<Num>(arr);
    }

    public static void main (String [] args){

        arr.sqrt();

        System.out.println("The numbers sq are "+ arr [0]);
    }
}

NumList类只有三种方法,包括sort。我尝试过通配符以及

这可能非常简单......任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

你的ArrayList包含Num类型的对象,但你试图在其中插入普通的ol'双打

pyi_rth_pkgres returned -1

double[] arr = {(1.1), (2.2), (3.3), (4.4)}; ArrayList<Num> n1 = new ArrayList<Num>(arr); 不会从double继承,因此无法放入Num。此外,没有ArrayList构造函数将数组作为参数,您必须将数组转换为具有ArrayList<Num>的集合。你必须做这样的事情

Arrays.asList(array)