从测试类初始化对象到arrayList

时间:2016-12-13 07:07:21

标签: java arrays oop arraylist

嘿,我是Java的新手,并且在使用数组方面遇到了困难。我试图使用数组或arrayLists来存储我的测试类中的值列表。但我正在研究如何将set1和set2添加到我的arrayList中。

我有一个带

的测试类
Data set1 = new Data(new double[]{1, 2, 3, 4, 5});
    System.out.println("Set1: " + set1);

Data set2 = new Data(new double[]{-5, -4, -3, 1});
        System.out.println("Set2: " + set2);

然后我的数据类

    import java.util.ArrayList;

    public class Data {

    public Data(double[] sets) {
        ArrayList<Double> sets = new ArrayList<Double>();
    }

}

4 个答案:

答案 0 :(得分:0)

也许这对你有用:

colortext

答案 1 :(得分:0)

首先将数据类创建为:

class Data
{
   ArrayList<Double> obj;

   Data(Double var[])
   {
      obj=new  ArrayList<Double>();

      for(int i=0;i<var.length;i++)
      {
           obj.add(var[i]);
      }
   }
}

现在将此数据类的对象创建为:

Double val1[]={1.0,2.0,3.0,4.0};
Data set1=new Data(val1);

Double val2[]={1.0,25.0,36.0,44.0};
Data set2=new Data(val2);

现在将这些数据类对象添加到arraylist中:

ArrayList<Data> sets=new ArrayList<Data>();
sets.add(set1);
sets.add(set2);

答案 2 :(得分:0)

您的问题出在您的Data课程中:

import java.util.ArrayList;

public class Data {

    public Data(double[] sets) {
        ArrayList<Double> sets = new ArrayList<Double>();
    }

}

sets变量在构造函数返回后消失,因此无法在那里声明它。您应该将声明移动到类级别,并在构造函数中为其指定正确的值:

ArrayList<Double> sets;
public Data(double[] sets) {
    this.sets = new ArrayList<Double>();
    for (double d : sets) {
        this.sets.add(d);
    }
}

由于您要打印Data,因此需要覆盖toString方法:

@Override
public String toString() {
    return sets.toString();
}

答案 3 :(得分:0)

以下是使用Java 8流的代码,

class Data {

    List<Double> d;

    public Data(Stream sets) {
         this.d = (List<Double>) sets.collect(Collectors.toList());
    }
}

Data setss = new Data(Stream.of("1.1","2","3.4","4","5"));
System.out.println("d list = "+setss.d);