我正在编写一个Java程序,其中包含一个包含数组和索引first
和last
的对象,以表示数组中定义值的位置。因此,例如,如果长度为8的双数组应该是空白的,除了第3,第4和第5坐标,如[_, _, _, -1.0, 4.2, -5.9, _, _]
,那么first
将存储3,last
将存储6 (比定义值的最后一个位置多一个)。但是,我不知道如何在Java数组中包含空值。它将所有内容初始化为0.0,并且我无法为任何坐标分配空值。
我需要为此任务使用数组,并且所有0.0的数组都应该被视为已满,所以我不能只选择将其解释为空。
感谢您的帮助。
答案 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
(以保存所有未知索引)。