你如何在Java中表示空的东西?

时间:2016-07-31 22:37:19

标签: java arrays

我正在编写一个Java程序,其中包含一个包含数组和索引firstlast的对象,以表示数组中定义值的位置。因此,例如,如果长度为8的双数组应该是空白的,除了第3,第4和第5坐标,如[_, _, _, -1.0, 4.2, -5.9, _, _],那么first将存储3,last将存储6 (比定义值的最后一个位置多一个)。但是,我不知道如何在Java数组中包含空值。它将所有内容初始化为0.0,并且我无法为任何坐标分配空值。

我需要为此任务使用数组,并且所有0.0的数组都应该被视为已满,所以我不能只选择将其解释为空。

感谢您的帮助。

3 个答案:

答案 0 :(得分:8)

您可以使用null来表示引用类型的“未定义”。 double不能是null(基本类型,不是引用类型),但Double可以是Double[]。因此,您可以使用double[]代替first

但你确定你需要关注“未定义”的价值吗?在我看来,您的数据结构将负责知道last以上.xlsx以下的任何索引都包含未定义的值。也就是说,在不知道存储在这些索引处的实际值的情况下。存储在那里的实际值可能是任何东西,无所谓。这就是我从你揭示的关于这次运动的小事中得到的印象,我可能是错的。

答案 1 :(得分:1)

如果你的数组是基本类型double [],那么它就不能为空。但是Double [](大写)是原语的对象包装器,它允许空值。

答案 2 :(得分:0)

如果您必须将值存储在double[]中,则表示未知值的方法并不容易。理论上,任何双精度值都可以是有效值。

您有两种选择。

首先是指定一个特定的双值来表示'未知'。例如,您可以使用Double.NaN来表示未知值。

第二个选项是在单独的结构中存储未知的值。您可以使用boolean[]Map<Integer,Boolean>甚至List<Integer(以保存所有未知索引)。