如何将数组从File1.java复制到文件two.java

时间:2012-02-23 01:34:34

标签: java arrays

在File1.java中我有 -

public static int[] dataArray = new int[100];
File2.java中的

我将其作为 -

访问它
private static int[] data = new int[File1.dataArray.length];
for(int i=0; i<File1.dataArray.length; i++) {
        if(File1.array1[i] == 0)
            continue;
        data[i] = File1.array1[i];}

这是正确的方法还是我可以这样做 -

private static int[] data = File1.dataArray;

要复制吗?任何帮助赞赏。谢谢!

2 个答案:

答案 0 :(得分:1)

是的,你可以做到

private static int[] data = File1.dataArray;

但是有一个巨大的危险这样做,因此我不会称它为COPY阵列的正确方法,因为你并不真正复制。

请参阅此代码。它演示了会发生什么。

public class File1
 {
    public static int[] dataArray = new int[100]; 

    static  
     {
  for (int i=0; i<100; i++)
    {
     dataArray[i] = i;
    }
     }

}

public class File2
 {
   private static int[] data = File1.dataArray; // makes "data" refer to the SAME array as File1.dataArray

   public static void main(String[] args)
    {
  File2 file2 = new File2();

      file2.data[20] = -567;  // this changes File1.dataArray also!

      System.out.println(File1.dataArray[20]); // prints -567
    } 
 }

因此,正如Jarrod建议的那样,使用System.arrayCopy()来复制数组。当然,您也可以通过编写自己的代码进行复制 -

 private static int[] data = new int[File1.dataArray.length];

 static
  {   
    for(int i = 0; i < File1.dataArray.length; i++)
 {
    data[i] = File1.dataArray[i];   
 }
  }

答案 1 :(得分:0)

查找System.arraycopy()以复制数组。

目前尚不清楚所呈现的代码与标题中引用的文件有什么关系?

此外,您呈现的代码不完整,无法编译,也不清晰或惯用Java。

如果你不清楚你想要做什么,这很可能会被关闭。