一、利用Java自帶方法實現數組元素刪除
Java自帶的Arrays類提供了一個方法可以在數組中刪除一個元素,該方法是Arrays.copyOfRange方法,這個方法可以通過指定待刪除元素的下標和元素個數,返回一個新的數組,新數組中不包含被刪除的元素。
int[] oldArray = {1, 2, 3, 4, 5}; int index = 2; // 刪除下標為2的元素(3) int[] newArray = Arrays.copyOfRange(oldArray, 0, index); System.arraycopy(oldArray, index + 1, newArray, index, oldArray.length - index - 1);
上述代碼中,我們先使用copyOfRange方法創建一個新數組newArray,該數組包含了0到待刪除元素下標之間的元素(即1和2)。然後我們使用System.arraycopy方法將舊數組中待刪除元素之後的元素複製到新數組中,從待刪除元素的下標對應位置開始覆蓋。
二、手動實現數組元素刪除
如果我們需要在自己的代碼中手動實現數組元素的刪除,可以採用以下方法:
int[] oldArray = {1, 2, 3, 4, 5}; int index = 2; // 刪除下標為2的元素(3) int[] newArray = new int[oldArray.length - 1]; int j = 0; for (int i = 0; i < oldArray.length; i++) { if (i != index) { newArray[j] = oldArray[i]; j++; } }
上述代碼中,我們首先創建一個新數組newArray,該數組的長度比舊數組小1。然後我們使用一個for循環遍歷舊數組中的每個元素,如果當前元素的下標不是待刪除元素的下標,則將該元素複製到新數組中。
三、List集合的方法實現數組元素刪除
如果我們可以使用List集合來代替數組,那麼刪除一個元素就特別容易了。這個時候我們只需要使用List提供的remove方法,指定待刪除元素的下標,即可實現刪除操作。
List list = new ArrayList(Arrays.asList(1, 2, 3, 4, 5)); list.remove(2); // 刪除下標為2的元素(3) int[] newArray = list.stream().mapToInt(Integer::intValue).toArray();
上述代碼中,我們首先使用Arrays.asList方法將一個數組轉換成List集合。然後我們使用List提供的remove方法刪除待刪除元素。最後,我們通過StreamAPI將List集合轉換成一個新數組。
四、Java8新特性的方法實現數組元素刪除
Java8為我們提供了一個非常方便的操作數組的新特性:stream。使用stream可以極大地簡化數組的操作。以下是使用stream實現數組元素刪除的代碼:
int[] oldArray = {1, 2, 3, 4, 5}; int index = 2; // 刪除下標為2的元素(3) int[] newArray = IntStream.range(0, oldArray.length) .filter(i -> i != index) .map(i -> oldArray[i]) .toArray();
上述代碼中,我們使用IntStream.range方法生成一個從0到舊數組元素個數之間的整型流。然後我們使用filter方法過濾掉下標為待刪除元素下標的元素,最後使用map方法將剩餘元素映射為新數組元素,並將其轉換成一個新數組。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/190871.html