Java 如何检查数组的所有元素是否都不';t等于某个值?(例如,非空)
前面的数组Java 如何检查数组的所有元素是否都不';t等于某个值?(例如,非空),java,arrays,Java,Arrays,前面的数组 String[] player = {"Empty","Empty","Empty","Empty"} 输入后的数组 String[] player = {"Tom","Bob","Alex","Kid"} 我记得有一种方法可以检查数组的所有元素 if(!player[0].equals("Empty") && !player[1].equals("Empty") && !player[2].equals("Empty") &&
String[] player = {"Empty","Empty","Empty","Empty"}
输入后的数组
String[] player = {"Tom","Bob","Alex","Kid"}
我记得有一种方法可以检查数组的所有元素
if(!player[0].equals("Empty") && !player[1].equals("Empty") && !player[2].equals("Empty") && !player[3].equals("Empty"))
{
System.out.println("No more space");
}
我的问题。是否有方法选择数组的所有元素?您可以隐式迭代数组: 或者显式迭代数组:
你的意思是:
boolean hasEmpty = false;
for (int i = 0; i < player.length(); i ++)
{
if(player[i].equals("Empty")){
hasEmpty = true;
break;
}
}
if(hasEmpty) System.out.println("No more space");
boolean hasbempty=false;
对于(int i=0;i
我知道这可能不是一个选项,但:
所以,如果数组是
{“Empty”,“Empty”,“Empty”,“Empty”}
这将输出“不再有空间”四次?你为什么不加上休息时间?还有别的办法吗?不使用for循环。我不确定,但我记得我在一本书中读到有array.all之类的东西。不确定这就是我问的原因。@om-nom-nom对不起,伙计,我忽略了它,我正在处理第二个解决方案=(好吧,所有这些都不错,但这不是我想要的。好吧,我必须再读一遍这本书。看看我是否被错误地发现了它。我的错误是ArrayList。哦,好吧,thx anyways=DTrue…但我看不出这比contains
解决方案有什么改进。(如果有的话,它可能会更慢)现在,如果问题需要不区分大小写的匹配,情况就不同了…@StephenC您为什么认为这会更慢?allMatch短路(在第一个“false”处退出)?或者您担心调用动态?
for(String p : player)
{
if(!p.equals("Empty"))
continue;
else
{
System.out.println("No more space.");
break;
}
}
boolean hasEmpty = false;
for (int i = 0; i < player.length(); i ++)
{
if(player[i].equals("Empty")){
hasEmpty = true;
break;
}
}
if(hasEmpty) System.out.println("No more space");
boolean nonEmpty = Arrays.asList(player).anyMatch(x -> x.equals("Empty"))