Java 静态数组中元素的删除是否可以是O(1)?

Java 静态数组中元素的删除是否可以是O(1)?,java,data-structures,Java,Data Structures,当您创建数组时,您在内存中保留大小(类型)*长度,当您想要访问特定位置时,您可以按大小(类型)*位置进行访问,因此如果您想要删除最后一个元素,您只能将位置的最大值设置为位置-1,并释放剩余内存以在O(1)中进行删除 las元素的静态数组就是这样工作的吗?不完全是这样。Java中数组的长度是固定的。通过为数组中的项数保留单独的计数器,仍然可以删除数组末尾的对象。然后您可以通过将最后一个元素设置为null并手动减少计数器来“删除”它。但是数组的实际长度仍然是相同的,计数器上方的条目将是空的。不在Ja

当您创建数组时,您在内存中保留大小(类型)*长度,当您想要访问特定位置时,您可以按大小(类型)*位置进行访问,因此如果您想要删除最后一个元素,您只能将位置的最大值设置为位置-1,并释放剩余内存以在O(1)中进行删除


las元素的静态数组就是这样工作的吗?

不完全是这样。Java中数组的长度是固定的。通过为数组中的项数保留单独的计数器,仍然可以删除数组末尾的对象。然后您可以通过将最后一个元素设置为null并手动减少计数器来“删除”它。但是数组的实际长度仍然是相同的,计数器上方的条目将是空的。

不在Java中……静态数组是什么意思?你的意思是像
int[]
这样的数组类型的对象吗?不存在静态创建数组(即使用方括号)“删除元素”这样的事情@shmosel,所以始终是O(n),例如可以用C表示?我在C中也提到int[],在静态数组中没有“delete”这样的概念。一个15整数的数组包含15整数,永远和永远。没有“空”元素的概念。指针数组可能包含空指针的元素,因此偶尔会使用空指针来创建具有最大大小且允许空元素的结构的静态列表。