【问题标题】:How to add elements to a fixed size array in Java after the last non-null element? [closed]java - 如何在最后一个非空元素之后将元素添加到Java中的固定大小数组? [关闭]
【发布时间】:2013-06-05 16:21:33
【问题描述】:

所以我有一个长度为 10 的字符串数组。我添加了一个或两个值,其余的仍然为空。我希望能够返回并从第一个非空元素开始添加更多值。我如何获得索引号?目前我的逻辑覆盖数组并从 0 索引开始。提前致谢。

【问题讨论】:

  • 把你的这个逻辑贴出来怎么样?
  • 遍历数组直到找到一个空???

标签: java arrays string null indexing


【解决方案1】:

您可以创建一个自定义方法,检查数组中的最后一个 null 元素并返回它的索引。

public int getTheIndexOfNull(String[] array) {
    int result = -1;
    for (int i = 0; i < array.length; i++) {
        if (array[i] == null) {
             result = i;
             break;
        }
    }
    return result;
}

【讨论】:

  • return ireturn -1 而不是 break 怎么样?或者至少result = i; return i;
  • return i; return -1 而不是 break ?再想想。 :)
  • 绝对不是。再想想。 :)
  • 删除result变量,你会看到。
  • 这个相当于单行Arrays.asList(array).indexOf(null)
【解决方案2】:

与其重新发明轮子,不如只使用ArrayList&lt;String&gt;?在内部,它完全符合您的要求:它有一个Object[],其中项目在当前长度之后是null,它有一个int,表示下一个空索引是什么。

【讨论】:

    【解决方案3】:

    数组创建后数组长度不能改变。但是,您始终可以为任何元素分配任何值"

    String[] a = new String[10];
    a[5] = "foo";
    a[6] = "bar";
    

    要找到第一个空元素进入循环并赋值:

    for (int i = 0; i < a.length; i++) {
        if (a[i] == null) {
            a[i] = s;
            break;
        }
    }
    

    【讨论】:

      【解决方案4】:

      你可以试试:

              String[] yourArray = new String[10];
              yourArray[0] = "zero";
              yourArray[1] = "one";
      
              for (int i = 0; i < yourArray.length; i++) {
                  if(yourArray[i] == null){
                      yourArray[i] = "youElemAfterFirstNonNullElem";
                      break;
                  }
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-09
        • 2011-01-15
        • 2011-03-15
        • 2018-08-17
        • 1970-01-01
        相关资源
        最近更新 更多