[英]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.