Java 如何在android中清除int[]数组?

Java 如何在android中清除int[]数组?,java,arrays,integer,sum,Java,Arrays,Integer,Sum,我有一个计算总费用和总收入的例子。整数数组中有一些值是从字符串数组转换而来的。一旦我运行代码,总和是6000,再次运行相同的代码,总和乘以12000。我怎样才能克服这个问题。请检查我下面给出的代码 public static int incSum=0; int[] numbersinc = new int[theAmount.length]; for(int i=0;i<theAmount.length;i++) { numbersinc[i]=Int

我有一个计算总费用和总收入的例子。整数数组中有一些值是从字符串数组转换而来的。一旦我运行代码,总和是6000,再次运行相同的代码,总和乘以12000。我怎样才能克服这个问题。请检查我下面给出的代码

public static int incSum=0;

int[] numbersinc = new int[theAmount.length];

    for(int i=0;i<theAmount.length;i++)
    {

        numbersinc[i]=Integer.parseInt(theAmount[i]);

        incSum=incSum+numbersinc[i];
    }

    Log.e("SUM INC","Sum Inc= "+incSum);    <<<<<- This sum is multiplying
public static int incSum=0;
int[]numbersinc=新的int[theAmount.length];

对于(int i=0;i您可以简单地将
null
分配给引用。(这将适用于任何类型的数组,而不仅仅是
int

这将“清除”数组。如果愿意,还可以将新数组分配给该引用:

int[] arr = new int[]{1, 2, 3, 4};
arr = new int[]{6, 7, 8, 9};
如果您担心内存泄漏,请不要担心。垃圾收集器将清除数组留下的所有引用

另一个例子:

float[] arr = ;// some array that you want to clear
arr = new float[arr.length];
这将创建一个新的
float[]
初始化为float的默认值

因此,在您的代码中尝试以下操作:

public int incSum=0;

int[] numbersinc = new int[theAmount.length];
incSum = 0; //add this line
    for(int i=0;i<theAmount.length;i++)
    {

        numbersinc[i]=Integer.parseInt(theAmount[i]);

        incSum=incSum+numbersinc[i];
    }

    Log.e("SUM INC","Sum Inc= "+incSum);    <<<<<- This sum is multiplying
  numbersinc = null;
public int incSum=0;
int[]numbersinc=新的int[theAmount.length];
incSum=0;//添加此行
对于(int i=0;i
您的变量是
静态的
,因此当您再次运行时,上一个值将存储在
incSum
变量中


incSum

中删除
static
。这看起来不像是一个完整的代码片段,更像是一个java问题,而不是android问题。看起来您的问题更多的是没有重置sum,而不是数组问题。在每次运行数组之前(即for循环之前)重置incSum=0.
public int incSum=0;

int[] numbersinc = new int[theAmount.length];
incSum = 0; //add this line
    for(int i=0;i<theAmount.length;i++)
    {

        numbersinc[i]=Integer.parseInt(theAmount[i]);

        incSum=incSum+numbersinc[i];
    }

    Log.e("SUM INC","Sum Inc= "+incSum);    <<<<<- This sum is multiplying
  numbersinc = null;
public static int incSum=0;