循环内的对象值更新将值添加到列表而不是更新列表

时间:2016-07-23 15:03:59

标签: java list object arraylist static-methods

我想从main方法更新我的matrixlist。在我的main方法中,我创建了一个对象来更新我的matrixlist。 我想在main方法中的循环内执行一些操作后更新我的矩阵列表。 因此,我打算在main方法中更新循环内部的对象。

这就是我的MatrixList的样子: -

public class MatrixList {

    private static double N1;

    ..................
        ...........
            ...............

    private static double N4;


    private static List<Double> IN1= new ArrayList<>();

   .....................
    ....................
        ....................

    private static List<Double> IN4 = new ArrayList<>();



    public static void setIN1(double N1) {
        MatrixList.N1=N1;
        IN1.add( MatrixList.N1);
    }

     ...............
    .......................
            .....................

    public static void setIN4(double N4) {
         MatrixList.N4=N4;
        IN4.add( MatrixList.N4);
    }                       


    public static List<Double> getIN1() {
        return MatrixList.N1;
    }

    ....................
    .....................
        .................


    public static List<Double> getIN4() {
        return MatrixList.N4;
    }

    }
}

这是我的主要方法: -

public class test {

    public static void main(String args[])
    {

        ReadCSV readcsv = new ReadCSV();
        readcsv.ReadCSV();


        MatrixSerialInitialize init = new MatrixSerialInitialize();
        init.matrix_initialize();     


        for(int i=0;i<2;i++)
        {

        init.matrix_initialize();
    }

        int i=0;
    for(Double d:MatrixList.getIN4())
    {
    System.out.println(d);
    System.out.println("i,"+i);
    i++;
        }      

      }

这是我初始化我的矩阵的方式: -

public class MatrixSerialInitialize {
   public void matrix_initialize()
   {
       double j=-0.8164; 

       for (int i = 0; i < 4; i++) {


            while(j==0)
            {
             j+=0.051025;   
            }

            MatrixList.setIN1(j);
            j+=0.051025;

            while(j==0)
            {
             j+=0.051025;   
            }

          ..................
          ..................

            MatrixList.setIN4(j);
            j+=0.051025;
        }                   

   }


}

但在更新循环内部的对象后,我遇到的是我的列表已更新三次。这不是我想要的。我想更新列表中的先前值。

是因为静态列表还是有什么方法可以更新循环内的列表?

有人可以帮我解决这个问题吗?

0 个答案:

没有答案
相关问题