【问题标题】:How do I check if my int array is empty, with the standard value being 0?如何检查我的 int 数组是否为空,标准值为 0?
【发布时间】:2022-01-10 11:39:03
【问题描述】:

所以我遇到了一个我似乎无法解决的问题。所以假设我有一个 int 数组,并想检查该数组是否仍有空间来添加某个元素(从 0 到 ∞)或没有剩余空间,这意味着我需要创建一个新数组。

问题是当我的 int 数组有空间存放十个值时,所有的空间都被 0 填满,所以我的程序认为这个数组是满的。而且我也不能排除 0,因为我要添加的元素也可能是 0。

有什么建议吗?

【问题讨论】:

  • 有一个柜台。特殊值是个坏主意。
  • IntBuffer 几乎肯定是您想要的。例如,IntBuffer values = IntBuffer.allocate(10);

标签: java arrays null integer zero


【解决方案1】:

您可能正在使用int[]?原始类型int 不能是null。一个非常简单的解决方案是使用包装类Integer

Integer[] intArray = {null, 0, 10};

【讨论】:

  • 有趣的解决方案!不错。
  • 以内存为代价。
  • 但也许,正如另一个答案中提到的那样,List 对您来说是一个更好的解决方案。
  • 谢谢!这就是我正在寻找的简单解决方案!
【解决方案2】:

您需要通过其他变量跟踪哪些职位被填补。 Java 数组本身(在创建时)使用 0-s 进行初始化,从技术上讲它始终是满的。

如果需要动态扩展数组,我的建议是使用java.util.List,它非常方便,在大多数情况下可以很好地替换Java数组。

List教程很容易找到,这里是an example

这就是你使用它的方式:

import java.util.ArrayList;
import java.util.List;

....
List<String> a = new ArrayList<>();
a.add("Hello");
a.add("World");
System.out.println(a.size());

您可以轻松转换为标准数组:a.toArray()

【讨论】:

    【解决方案3】:

    如果您的数字总是大于或等于 0,您可以将未使用的数字设置为 -1。

    【讨论】:

      猜你喜欢
      • 2020-03-11
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      相关资源
      最近更新 更多