for循环在android停止短和重新启动

时间:2012-07-26 18:49:33

标签: android for-loop restart

下面的循环似乎停止了,然后重新启动。它不在另一个循环中。第一个Log调用打印36,因此外部for循环应该运行36次。循环内部的Log调用,用于打印循环运行的次数,打印“0”直到“4”,这意味着循环只运行了5次。是否有任何理由让这个过程重新开始,以便第一个Log调用再次触发,并且循环再次仅运行5次?根据我的Logcat输出,这会发生两次。

ArrayList<RunData_L> rdUP = t.getMyPositiveRunData();
ArrayList<RunData_L> rdDOWN = t.getMyNegativeRunData();
Log.d("rdUP size", rdUP.get(0).getMyMeasurementData().size() + "");
for (int i = 0; i < rdUP.get(i).getMyMeasurementData().size(); i++) {
   Log.d("i", i + "");
   ArrayList<BigDecimal> tempUP = new ArrayList<BigDecimal>(), tempDOWN = new ArrayList<BigDecimal>();
   for(int j = 0; j < rdUP.size(); j++) {
      tempUP.add(rdUP.get(j).getMyMeasurementData().get(i));
      tempDOWN.add(rdDOWN.get(j).getMyMeasurementData().get(i));
   }
   pdUP.add(tempUP);
   pdDOWN.add(tempDOWN);
}

1 个答案:

答案 0 :(得分:0)

我怀疑根据我的评论,在内循环中使用rdUP.get(j)会导致问题。

首先测试外环中rdUP.get(i).getMyMeasurementData()的大小作为循环的边界条件,因此 i 从0运行到rdUP.get(i).getMyMeasurementData()的大小。

然后你的内部循环说明遍历 rdUP 的每个元素,并从rdUP.get(j).getMyMeasurementData()获取 i 值。你怎么知道 j rdUP 有足够的元素来满足你的get(i)