[英]How can I check to find the first object free between two vector?
我有這段代碼,並且在創建像這樣的對象之前就已經有了:
client[0],youngClient[1],client[2],youngClient[3]...
對於調用此方法,我使用: int result = freeObject("client","youngClient");
這就是代碼...
private static int freeObject(String objectName1, String objectName2){
int i=0, solucion=0;
boolean salir = false;
do{
String objectFull1 = objectName1 + "[" + i + "]";
String objectFull2 = objectName2 + "[" + i + "]";
if(objectFull1.equals(null) && objectFull2.equals(null)){
solucion = i;
salir = true;
}
i++;
}while(!salir);
return solucion;
}
String objectFull1 = objectName1 + "[" + i + "]";
永遠不會為null,因此您將永遠無法滿足您的條件。
您應該直接測試您的字符串參數:
if(objectName1.equals(null) && objectName2.equals(null)){
solucion = i;
salir = true;
}
看來您嘗試做某種奇怪的事情,例如: objectName1 + "[" + i + "]";
。 你不能做這樣的事情。 一些錯誤/改進:
salir
),最好直接返回解決方案,甚至不使用變量來存儲它( solucion
)。 null
比較,在這種情況下不要使用equals。 -1
或任何其他錯誤值,甚至可以返回一個異常以通知沒有解決方案。 我的建議是:
private static int freeObject(String[] array1, String[] array2) {
for(int i = 0; i < array.lenght; i++) {
if(array1[i] == null && array2[i] == null) {
return i;
}
}
return -1; // or any other no solution mark
}
在聲明的對象與在freeObject方法中進行比較的對象之間沒有關系,在freeObject()中創建對象的方式將導致每個計數器增量都創建新的字符串litral(即非null),因此將導致無限環。 在提交代碼到堆棧溢出之前,請確保測試代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.