Java 用-1表示已使用/入侵的ILD数据是一种好方法吗?

Java 用-1表示已使用/入侵的ILD数据是一种好方法吗?,java,Java,导言 我做了一个非常简单的模拟实时洗牌球和挑球在某个时间间隔 我想要模拟的是: 一台机器总共有49个球,机器将继续洗牌。过了一段时间,机器会打开大门把球挑出来。 以下是视频: 我写的内容(非常简单的版本): 一共有49个球,我在49+1的位置上完成了 每次洗牌时,如果球被洗牌到额外的空间 一段时间后,我将检查额外的空间,以查看球是否被交换到其中并将其取出 然后用-1标记该空间,以表示该空间不再有效 相反,我应该随机挑选一个球,但不要使用额外的空间。忽略这个场景 完成这项工作后,我将尝试使用A

导言

我做了一个非常简单的模拟实时洗牌球和挑球在某个时间间隔

我想要模拟的是:

一台机器总共有49个球,机器将继续洗牌。过了一段时间,机器会打开大门把球挑出来。 以下是视频:


我写的内容(非常简单的版本): 一共有49个球,我在49+1的位置上完成了

每次洗牌时,如果球被洗牌到额外的空间

一段时间后,我将检查额外的空间,以查看球是否被交换到其中并将其取出

然后用-1标记该空间,以表示该空间不再有效

相反,我应该随机挑选一个球,但不要使用额外的空间。忽略这个场景

完成这项工作后,我将尝试使用Android游戏引擎来模拟重力和碰撞,以达到学习的目的

回到我的问题:


用-1表示使用过的数据是一种好方法吗?在现实世界的应用程序中,这是一种正常的方法吗?

将球建模为对象更像Java,即使现在它们只有一个字段“id”。你可能很想添加其他属性(位置、动量等,如果你想按照你的指示进行物理模拟的话),然后你需要它们成为对象


如果您只是使用int来表示球,是的,通常的做法是使用“-1表示空”。但是,请不要变得“聪明”,开始使用“-2”和“-3”来表示其他类型的内容

将球建模为对象会更像Java,即使现在它们只有一个字段“id”。你可能很想添加其他属性(位置、动量等,如果你想按照你的指示进行物理模拟的话),然后你需要它们成为对象


如果您只是使用int来表示球,是的,通常的做法是使用“-1表示空”。但是,请不要变得“聪明”,开始使用“-2”和“-3”来表示其他类型的内容

将球建模为对象会更像Java,即使现在它们只有一个字段“id”。你可能很想添加其他属性(位置、动量等,如果你想按照你的指示进行物理模拟的话),然后你需要它们成为对象


如果您只是使用int来表示球,是的,通常的做法是使用“-1表示空”。但是,请不要变得“聪明”,开始使用“-2”和“-3”来表示其他类型的内容

将球建模为对象会更像Java,即使现在它们只有一个字段“id”。你可能很想添加其他属性(位置、动量等,如果你想按照你的指示进行物理模拟的话),然后你需要它们成为对象


如果您只是使用int来表示球,是的,通常的做法是使用“-1表示空”。但是,请不要变得“聪明”,开始使用“-2”和“-3”来表示其他类型的内容

一种更面向对象的处理方法是创建一个BallSlot类,该类具有单独的成员,用于ball number和ball number是否有效


一般来说,使用0或-1这样的哨兵值不是一个好主意。它将多个语义重载为单个数据值,这使解析值变得复杂。实际上,这意味着所有使用该值的代码都充满了if()语句。

更面向对象的处理方法是创建一个BallSlot类,其中包含ball number和它是否有效的单独成员


一般来说,使用0或-1这样的哨兵值不是一个好主意。它将多个语义重载为单个数据值,这使解析值变得复杂。实际上,这意味着所有使用该值的代码都充满了if()语句。

更面向对象的处理方法是创建一个BallSlot类,其中包含ball number和它是否有效的单独成员


一般来说,使用0或-1这样的哨兵值不是一个好主意。它将多个语义重载为单个数据值,这使解析值变得复杂。实际上,这意味着所有使用该值的代码都充满了if()语句。

更面向对象的处理方法是创建一个BallSlot类,其中包含ball number和它是否有效的单独成员


一般来说,使用0或-1这样的哨兵值不是一个好主意。它将多个语义重载为单个数据值,这使解析值变得复杂。实际上,这意味着所有使用该值的代码都充满了if()语句。

当然可以。为了使代码更具可读性,您可以定义一个常量
NO_BALL=-1
或其他什么,并将其赋值,而不仅仅是
-1
。我不理解您的全部描述,但听起来您似乎在使用-1作为?是的,使用-1作为“无”标识符是一种常见做法(当然,我们需要确保-1不能作为“正常”值出现)。仅当
-1
是带外值时。当然,这很好。为了使代码更具可读性,您可以定义一个常量
NO_BALL=-1
或其他什么,并将其赋值,而不仅仅是
-1
。我不理解您的整个描述,但听起来您好像在使用-1作为?是的,使用-1作为“无”标识符是一种常见的做法(当然需要确保-1不能作为“正常”值出现)。只有当
-1
是带外值时才可以。当然,这很好。为了使代码更具可读性,可以定义常量