<分区>
我想保存 5 个最近的 int
值。下面的代码使用 int[] savedValues
和当前索引计数器存储值。
public class MyBuffer {
private final int BUFFER_SIZE = 5;
int[] savedValues = new int[BUFFER_SIZE];
int index = 0;
boolean isInitialCycle = true;
public void save(int value){
savedValues[index] = value;
index++;
if(index == BUFFER_SIZE){
index = 0;
isInitialCycle = false;
}
}
public Integer restore(int stepsBack){
if(( isInitialCycle && stepsBack > index ) || stepsBack > BUFFER_SIZE){
return null;
}
int recordIndex = ( BUFFER_SIZE + index - stepsBack ) % BUFFER_SIZE;
return savedValues[recordIndex];
}
}
什么是跟踪最新值的更简洁的方法?