(Java)迭代数组直到它达到空值

时间:2017-02-14 14:40:40

标签: java arrays loops for-loop

我的问题是我希望null遍历数组,直到它达到for(int i = 0; i<testArray.length; i++) { if(testArray[i] == null) { testArray[i] = new object(); } } 值,向数组中添加一个对象,然后停止迭代数组。

因此,例如当我按下一个键时,它会向数组添加一个对象,但每次按一个键时只会添加一个对象。

这是我的代码:

XPath

非常感谢

5 个答案:

答案 0 :(得分:2)

有两种方法可以解决这个问题:您可以使用break退出循环,也可以使用布尔标志

示例1(休息)

for(int i=0;i<testArray.length;i++)
{
  if(testArray[i] == null)
  {
   testArray[i] = new object();
   break;
  }
 }

示例2:布尔标志

boolean found = false;
for(int i=0;i<testArray.length && !found;i++)
{
  if(testArray[i] == null)
  {
   testArray[i] = new object();
   found = true;
  }
 }

答案 1 :(得分:0)

你可以做这样的事情:

int i = 0;
for(int i = 0; i<testArray.length && testArray[i] != null; i++);

if(i < testArray.length)
{
//now i will represent a position with a null element
testArray[i] = new object();
}

答案 2 :(得分:0)

找到元素后,

break循环......

这就是你所缺少的:

for(int i = 0; i<testArray.length; i++) {
   if(testArray[i] == null) {
      testArray[i] = new object();
      break;
   }
}

答案 3 :(得分:0)

也许KeyListener会有所帮助?你只需要听取你想要听的密钥,并检查它是否为空

for(int i = 0; i < record.length; i++)
        if(record[i] == null) {
            System.out.println(i+1 + " position is null");
        }

随意自定义。 ControlAltDel的破解解决方案也很有用。

答案 4 :(得分:-3)

如果您的testArray[]是一个Object数组,那么您需要使用.equals()来检查null,而不是==。然后,您可以添加break;以退出for-loop

for(int i=0;i<testArray.length;i++)
{
    if(testArray[i].equals(null))
    {
        testArray[i] = new Object();
        break;
    }
}

或者,您可以使用一个标志来表示是时候退出循环了

private boolean keepLooping = true;
private int i = 0;

while(keepLooping)
{
    if(testArray[i].equals(null))
    {
        testArray[i] = new object();
        keepLooping = false;
    }

    i++;
}