我被困住了。
以下函数应该返回currVm
一个整数。但是如果我做一个return
我会打破循环,下次调用这个函数时,同样的过程将再次开始。
我该怎么做,才能从上次中断的地方继续?我尝试制作static
变量,但这对我没有帮助。
@Override
public int getNextAvailableVm() {
Set<String> dataCenters = confMap.keySet();
for (String dataCenter : dataCenters) {
LinkedList<DepConfAttr> list = confMap.get(dataCenter);
Collections.sort(list, new MemoryComparator());
int size = list.size() - 1;
int count = 0;
while(size >= 0) {
DepConfAttr dca = (DepConfAttr)list.get(count);
int currVm = dca.getVmCount();
int c = 0;
while(c <= currVm) {
allocatedVm(currVm);
c++;
return currVm;
}
count++;
size--;
}
}
return 0;
}
for-each
循环分配一个新的data center
作为键的confMap
。我作为值得到的列表被排序。然后运行一个循环直到它逃脱它的大小。在这个内部while loop
,另一个while loop
从名为allocatedVm
继承的函数的地方运行类被调用。一个名为的参数currVm
被传递给它。
这是我需要返回的变量。我该怎么做才能返回这个变量?我必须从我离开的开始。我的意思是在执行循环时,下一个调用应该是下一步,不管它是什么。