3 回答
TA贡献1936条经验 获得超6个赞
在java中,当初始化数组时,它会为初始化保留内存,该内存需要保存与声明的数组的数据类型相对应的数据。
所以删除数组元素是你不能做的事情。
您可以做的简单事情是通过覆盖需要从数组中删除的数组元素来向左移动其他数组元素。这意味着声明一个新变量来保存数组当前保存的元素数量。
那么删除数组元素就变得简单了。
从要删除的元素开始向左移动元素。
将变量减 1
当您想要获取当前数组元素时,只需参考 no of elements 变量循环遍历数组即可。
TA贡献1825条经验 获得超6个赞
在 Java 中没有直接的方法从数组中删除元素。虽然Java对象中的Array,但它不提供任何方法来搜索add()
或remove()
搜索Array中的元素。ArrayList
这就是像HashSet 这样的 Collection 类非常流行的原因。
尽管
感谢Apache Commons Utils,您可以使用该类
ArrayUtils
比您自己操作更轻松地从数组中删除元素。要记住的一件事是,Java 中的数组是固定大小的,一旦创建数组,就无法更改其大小,这意味着删除或删除项目不会减少数组的大小。事实上,这是 Java 中 Array 和 ArrayList 之间的主要区别。
您需要做的是创建一个新数组,并使用System.arrayCopy()
或任何其他方式将该数组的剩余内容复制到新数组中。事实上,您将使用的所有其他 API 和函数都会执行此操作,但您无需重新发明轮子。
import java.util.Arrays;
import org.apache.commons.lang.ArrayUtils;
....
//let's create an array for demonstration purpose
int[] test = new int[] { 101, 102, 103, 104, 105};
System.out.println("Original Array : size : "
+ test.length );
System.out.println("Contents : " + Arrays.toString(test));
// let's remove or delete an element from an Array
// using Apache Commons ArrayUtils
test = ArrayUtils.remove(test, 2); //removing element at index 2
// Size of an array must be 1 less than the original array
// after deleting an element
System.out.println("Size of the array after
removing an element : " + test.length);
System.out.println("Content of Array after
removing an object : " + Arrays.toString(test));
TA贡献1887条经验 获得超5个赞
在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array中,告诉您可以使用 array.splice(pos, n) 按索引删除项目,其中 pos 是开始删除的索引,n 是删除的元素数量。
添加回答
举报