3 回答

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
在java中,當(dāng)初始化數(shù)組時(shí),它會(huì)為初始化保留內(nèi)存,該內(nèi)存需要保存與聲明的數(shù)組的數(shù)據(jù)類型相對(duì)應(yīng)的數(shù)據(jù)。
所以刪除數(shù)組元素是你不能做的事情。
您可以做的簡(jiǎn)單事情是通過(guò)覆蓋需要從數(shù)組中刪除的數(shù)組元素來(lái)向左移動(dòng)其他數(shù)組元素。這意味著聲明一個(gè)新變量來(lái)保存數(shù)組當(dāng)前保存的元素?cái)?shù)量。
那么刪除數(shù)組元素就變得簡(jiǎn)單了。
從要?jiǎng)h除的元素開(kāi)始向左移動(dòng)元素。
將變量減 1
當(dāng)您想要獲取當(dāng)前數(shù)組元素時(shí),只需參考 no of elements 變量循環(huán)遍歷數(shù)組即可。

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
在 Java 中沒(méi)有直接的方法從數(shù)組中刪除元素。雖然Java對(duì)象中的Array,但它不提供任何方法來(lái)搜索add()
或remove()
搜索Array中的元素。ArrayList
這就是像HashSet 這樣的 Collection 類非常流行的原因。
盡管
感謝Apache Commons Utils,您可以使用該類
ArrayUtils
比您自己操作更輕松地從數(shù)組中刪除元素。要記住的一件事是,Java 中的數(shù)組是固定大小的,一旦創(chuàng)建數(shù)組,就無(wú)法更改其大小,這意味著刪除或刪除項(xiàng)目不會(huì)減少數(shù)組的大小。事實(shí)上,這是 Java 中 Array 和 ArrayList 之間的主要區(qū)別。
您需要做的是創(chuàng)建一個(gè)新數(shù)組,并使用System.arrayCopy()
或任何其他方式將該數(shù)組的剩余內(nèi)容復(fù)制到新數(shù)組中。事實(shí)上,您將使用的所有其他 API 和函數(shù)都會(huì)執(zhí)行此操作,但您無(wú)需重新發(fā)明輪子。
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貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array中,告訴您可以使用 array.splice(pos, n) 按索引刪除項(xiàng)目,其中 pos 是開(kāi)始刪除的索引,n 是刪除的元素?cái)?shù)量。
添加回答
舉報(bào)