除了循环索引方向外,我有两种相同的方法。

methodA中的循环需要indexBegin < indexEnd,因此它将i从indexBegin递增到indexEnd。

methodB中的循环需要indexBegin > indexEnd,因此它将i从indexBegin减小到indexEnd。

public void methodA(int indexBegin, int indexEnd, List<Double> values) {
 for (int i = indexBegin; i <= indexEnd; i++) {
  ...
 }
}

public void methodB(int indexBegin, int indexEnd, List<Double> values) {
 for (int i = indexBegin; i >= indexEnd; i--) {
  ...
 }
}


有没有一种方法可以使用Iterator合并循环逻辑,所以我只有一个方法?我仍然需要跟踪索引。

最佳答案

您如何更改为while循环并同时声明两者呢?这样,您可以访问方法中的任何一个。

int countingUp = indexBegin;
int countingDown = indexEnd;

while (countingUp < indexEnd) {
  . . .

  countingUp++;
  countingDown--;

}

09-10 10:12