【问题标题】:How do I check to see if there is space in an array? [closed]如何检查数组中是否有空间? [关闭]
【发布时间】:2016-04-27 11:14:54
【问题描述】:

对于部分功课,我需要编写一个method,它会遍历对象数组以查看是否有空间将另一个对象添加到array。如果它能够添加一个对象,那么method 返回true,如果它不能添加它返回false。如何检查 array 以查看数组中是否有空单元格,以便向数组添加元素?例如,我有一个大小为 25 的数组,但只有 15 个单元格已满,我想在 10 个空单元格或null 之一中添加另一个对象。这本质上是一个带有 boolean 返回值的 add 方法。但我需要知道我可以添加到哪个单元格,因此需要检查哪个单元格是空的或null

【问题讨论】:

  • “数组中的空格”是什么意思?
  • 这个数组是从左到右填充的,你的任务是确定数组是否充满了有用的数据?
  • 您的意思是null 在索引中吗?还是您的意思是字符串数组中的empty String ("")?还是您的意思是字符串数组中的文字“空格”" "
  • 你应该让你的问题更清楚。
  • 不能完全按照您的具体需要。如果正确声明了数组,您始终可以执行 array[i] 以在索引处分配值(i 在边界内)。或者,如果我们谈论的是 Arraylist,您总是可以 .add() 元素。

标签: java arrays oop


【解决方案1】:
public void isSpace(String[] array) {
  for (int i=0; i<array.length; i++) {
    if( (array[i] == null) || (array[i].trim().length() == 0)) {
      //true on null, empty string, or white space only. Do something here
      array[i] = "add some thing here";
    }
    else {
      //not null, not empty string, or not white space. Do something here
    }
  }
}

【讨论】:

    【解决方案2】:

    作为一个静态大小的数组,你可以说一个数组总是满的。 但是如果你想知道数组是否包含空值,你只需要通过它。

    public boolean isEmpty(Object[] array) {
       for (Object element : array) {
          if (element == null) return true;
       }
       return false;
    }
    

    【讨论】:

    • 旁注,你无法优化从尾部迭代的代码,这完全取决于数组的使用方式,但它比其他任何地方都更有可能在末尾有空元素
    【解决方案3】:

    取决于你的意思,数组总是由它们的默认类型值初始化,所以你可能想问如何检查数组中是否保持默认值。

    1) 如果你说 abot Object[] 那么你会这样检查:

    public static boolean isSpace(Object[] array) {
       for (Object element : array)
           if (element == null) return true;
       return false;
    }
    

    2) 如果你说像 int[] 这样的原始类型,那么你会这样检查:

    public static boolean isSpace(int[] array) {
       for (int element : array)
           if (element == 0) return true;
       return false;
    }
    

    但是,您的问题没有正确表述,无法理解您的意思。

    【讨论】:

    • 它是一个对象数组。
    【解决方案4】:
    public boolean isEmpty(Object[] array) {
       for (Object s : array) {
          if (s == null) return true;
       }
       return false;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      相关资源
      最近更新 更多