除了循环索引方向外,我有两种相同的方法。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--;
}