我有两个几乎相同的方法,唯一的区别是一个从数组中的点“左”,第二个从数组中的点“右”。有什么方法可以消除这两个方法的重复吗?也许可以使用函数接口和函数?
void goLeft(int number, int index, int increment, int to) {
int localMax = 0;
int i = index;
while (i > to) {
i += increment; // passed increment is negative
// common body
}
}
void goRight(int number, int index, int increment, int to) {
int localMax = 0;
int i = index;
while (i < to) {
i += increment; // passed increment is positive
// common body
}
}
2条答案
按热度按时间bq3bfh9z1#
如果唯一的区别是while循环的条件,则可以使用三元运算符:
8gsdolmq2#
我想我使用枚举做了类似的事情,在您的情况下可能是这样的: