gpt4 book ai didi

java - 在 ArrayList java 中创建数组

转载 作者:行者123 更新时间:2023-12-02 03:50:14 24 4
gpt4 key购买 nike

我正在尝试在一个 ArrayList 中创建两种不同类型的数组。相应地设置构造函数(我认为),但是当涉及到实例化它们时,我收到一条错误消息“arr 无法解析”。我正在缓慢但坚定地绕过弯道。如何让 ArrayList 接受带有 double 的简单数组? (它还必须接受其他类型,因此这不仅仅是更改 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
}

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

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 类只有三个方法,包括排序。我已经尝试过通配符以及

这可能真的很简单......任何帮助表示赞赏。

最佳答案

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

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

double不继承自Num因此不能放在 ArrayList<Num> 中。另外,没有 ArrayList 构造函数将数组作为参数,您必须使用 Arrays.asList(array) 将数组转换为集合。 。你必须做这样的事情

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

关于java - 在 ArrayList java 中创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35942623/

24 4 0