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)
归档时间: |
|
查看次数: |
19590 次 |
最近记录: |