有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java对象值更新内部循环将值添加到列表中,而不是更新列表

我想从main方法更新我的矩阵列表。在我的主要方法中,我创建了一个对象来更新我的矩阵列表。 在main方法的循环中执行一些操作之后,我想更新我的矩阵列表。 因此,有了这个意图,我在main方法中更新了循环内的对象

我的矩阵列表是这样的:-

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) 个答案