Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ArrayList java中创建数组_Java_Arrays_Inheritance_Arraylist - Fatal编程技术网

在ArrayList java中创建数组

在ArrayList java中创建数组,java,arrays,inheritance,arraylist,Java,Arrays,Inheritance,Arraylist,我试图在一个ArrayList中创建两种不同类型的数组。相应地设置构造函数(我想),但当要实例化它们时,我会收到一条错误消息“arr无法解析”。我正在慢慢地但肯定地拐弯。如何让ArrayList接受带有双精度的简单数组?(它还必须接受其他类型,因此这不仅仅是更改ArrayList本身的问题) class NumList implements Num { private ArrayList<Num> n1; public NumList( NumDouble[] do

我试图在一个ArrayList中创建两种不同类型的数组。相应地设置构造函数(我想),但当要实例化它们时,我会收到一条错误消息“arr无法解析”。我正在慢慢地但肯定地拐弯。如何让ArrayList接受带有双精度的简单数组?(它还必须接受其他类型,因此这不仅仅是更改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
}
类NumList实现Num
{
私人ArrayList n1;
公共NumList(NumDouble[]双数组)
{           
n1=新的ArrayList();
for(numduble d:doubleArray)
n1.添加(d);
}
公共NumList(NumFloat[]floatArray)
{
n1=新的ArrayList();
for(NumFloat d:floatArray)
n1.添加(d);
}
//Num接口的方法
}
我的测试课是这样的-

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]);
    }
}
import java.util.ArrayList;
公共类演示扩展了NumList{
公共演示(NumDouble[]双数组){
//建议在此处自动添加super
超级(双阵列);
双[]arr={(1.1)、(2.2)、(3.3)、(4.4)};
ArrayList n1=新的ArrayList(arr);
}
公共静态void main(字符串[]args){
arr.sqrt();
System.out.println(“sq的数字为”+arr[0]);
}
}
NumList类只有三个方法,包括sort。我也尝试过通配符


这可能真的很简单。。。非常感谢您的帮助。

您的ArrayList包含Num类型的对象,但您正试图在其中插入普通的ol'double

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

您的ArrayList保存Num类型的对象,但您正试图在其中插入普通的ol'double

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

顶部的数组列表声明中使用了什么
Num
?这是一节课吗?代码在哪里?您正在讨论NUMLIST接口,但看起来NUMLAST是一个类?考虑添加语言标记。这个问题还没有得到应有的重视。@NumList继承自一个名为Num的接口,该接口只有三个方法(neg、sort和asString)。我想应该说得更清楚些:-)@pantalona-什么是
Num
?@walking warrior Num是接口的名称,它有三种方法:public void neg();公共无效sqrt();公共字符串asString();顶部的数组列表声明中使用了什么
Num
?这是一节课吗?代码在哪里?您正在讨论NUMLIST接口,但看起来NUMLAST是一个类?考虑添加语言标记。这个问题还没有得到应有的重视。@NumList继承自一个名为Num的接口,该接口只有三个方法(neg、sort和asString)。我想应该说得更清楚些:-)@pantalona-什么是
Num
?@walking warrior Num是接口的名称,它有三种方法:public void neg();公共无效sqrt();公共字符串asString();只要我不使用n1(否则我会收到一条警告说没有使用n1),这似乎是可行的——所以:newarraylist(Arrays.asList(arr));没有给我任何警告,可以吗?只需考虑对其调用方法sort(are.sqrt不起作用)。谢谢只要我不使用n1(否则我会收到一条警告说没有使用n1),这似乎是可行的——所以:newarraylist(Arrays.asList(arr));没有给我任何警告,可以吗?只需考虑对其调用方法sort(are.sqrt不起作用)。谢谢