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

Res*_*min 4 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]=Integer.parseInt(theAmount[i]);

        incSum=incSum+numbersinc[i];
    }

    Log.e("SUM INC","Sum Inc= "+incSum);    <<<<<- This sum is multiplying
Run Code Online (Sandbox Code Playgroud)

Him*_*wal 11

您可以简单地分配null给参考.(这适用于任何类型的数组,而不仅仅是ints)

int[] arr = new int[]{1, 2, 3, 4};
arr = null;
Run Code Online (Sandbox Code Playgroud)

这将"清除"阵列.如果您愿意,还可以为该引用分配新数组:

int[] arr = new int[]{1, 2, 3, 4};
arr = new int[]{6, 7, 8, 9};
Run Code Online (Sandbox Code Playgroud)

如果您担心内存泄漏,请不要.垃圾收集器将清除阵列留下的任何引用.

另一个例子:

float[] arr = ;// some array that you want to clear
arr = new float[arr.length];
Run Code Online (Sandbox Code Playgroud)

这将创建一个新的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;
Run Code Online (Sandbox Code Playgroud)