Java 如何使已用索引不可替换

Java 如何使已用索引不可替换,java,Java,我目前正在制作一个数组程序,我想知道如何才能使索引号不能再次使用。例如,如果我以前在索引[3]处放置一个值,我将无法使用索引[3]并替换其中的值,但我可以访问它。您可以将整个数组初始化为一些未定义的值,例如-1。在将值放置在该索引处之前,请检查它是否为-1,如果你需要在数组中存储所有可能的值,那么解决这个问题的唯一方法就是声明另一个相同大小的布尔数组并将其初始化为false。一旦你在数组中的索引i处放置了值,然后将布尔数组[i]=true。在放置任何值之前,请检查布尔数组[i]为false。如果

我目前正在制作一个数组程序,我想知道如何才能使索引号不能再次使用。例如,如果我以前在索引[3]处放置一个值,我将无法使用索引[3]并替换其中的值,但我可以访问它。

您可以将整个数组初始化为一些未定义的值,例如-1。在将值放置在该索引处之前,请检查它是否为-1,如果你需要在数组中存储所有可能的值,那么解决这个问题的唯一方法就是声明另一个相同大小的布尔数组并将其初始化为false。一旦你在数组中的索引i处放置了值,然后将布尔数组[i]=true。在放置任何值之前,请检查布尔数组[i]为false。如果为true,则该索引已被使用。

您可以将整个数组初始化为某个未定义的值,例如-1。在将值放入该索引之前,请检查它是否为-1,如果你需要在数组中存储所有可能的值,那么解决这个问题的唯一方法就是声明另一个相同大小的布尔数组并将其初始化为false。一旦你在数组中的索引i处放置了值,然后将布尔数组[i]=true。在放置任何值之前,请检查布尔数组[i]为false。如果为true,则该索引已被使用。

不,您不能,您试图做的是将索引设为“final”,但您不能。 您只能将整个数组设置为final,但它不会给您想要的限制

如果要实现这一点,需要使用包装器,而不是直接使用数组

比如说,

myArrayWraper.add("toto",3)

您创建了一个包含数组的类
MyArrayRaper
,并实现了一个方法
add
,该方法将检查索引是否已被使用。

不,您不能,您试图做的是将索引设为“final”,但您不能。 您只能将整个数组设置为final,但它不会给您想要的限制

如果要实现这一点,需要使用包装器,而不是直接使用数组

比如说,

myArrayWraper.add("toto",3)

您创建了一个包含数组的类
MyArrayRaper
,并实现了一个方法
add
,该方法将检查索引是否已被使用。

有点混乱,您能提供一个示例吗?您的意思是,一旦您将一个值设置到数组中的某个位置(例如索引[3]),您希望能够访问它,但不想修改它?是否“无法再次使用”意味着您希望检测您已经使用的索引,以便您的程序选择另一个索引?您可以将使用过的索引保留在一个集合中。然后,如果用户试图分配一个已经在该集中的索引,您可以随意处理它。这有点让人困惑,您能提供一个例子吗?您的意思是,一旦您将一个值设置到数组中的某个位置(例如索引[3]),您希望能够访问它,但不想修改它?是否“无法再次使用”意味着您希望检测您已经使用的索引,以便您的程序选择另一个索引?您可以将使用过的索引保留在一个集合中。然后,如果用户试图分配已在该集中的索引,您可以按自己的意愿进行处理。如果需要存储所有可能的值,则此操作无效。编辑了答案。如果需要存储所有可能的值,则此操作无效。编辑了答案。