刪除陣列中一個或者多個連續的元素
本文允許轉載,但請標明出處:http://blog.csdn.net/wanghantong/article/details/46730591, 版權所有
參考StringBuffer的底層原始碼實現:
public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable,
CharSequence
CharSequence
<span style="font-size:14px;">char[] value; int count; public AbstractStringBuilder delete(int start, int end) { if (start < 0) throw new StringIndexOutOfBoundsException(start); if (end > count) end = count; if (start > end) throw new StringIndexOutOfBoundsException(); int len = end - start; if (len > 0) { System.arraycopy(value, start+len, value, start, count-end); count -= len; } return this; }</span>
本文允許轉載,但請標明出處:http://blog.csdn.net/wanghantong/article/details/46730591,
版權所有
策略解析:
<span style="font-size:14px;">Test System.arraycopy()方法: String[] array1 = { "1", "2", "3", "4", "5" }; //System.arraycopy(value, start+len, value, start, count-end); //System.arraycopy(src, srcPos, dest, destPos, length); System.arraycopy(array1, 4, array1, 3,1); //從索引為4的元素開始,替換了從起始索引為3的元素,替換長度為1 printArray(array1);//1 2 3 5 5</span>
本文允許轉載,但請標明出處:http://blog.csdn.net/wanghantong/article/details/46730591, 版權所有
分析count -= len;
陣列元素替換之後,就變成12355,
count = 源陣列的元素個數
len = 我們要替換的末索引-始索引 = (期望被刪除的元素的個數)
count -= len; // 表示陣列被刪除後,長度減少了len個。所以count -= len;
12355 取 4個長度。。就是1235,那麼看結果,4已經被刪除掉了。。。
再說System.arraycopy(src,
srcPos, dest, destPos, length);這個方法
srcPos, dest, destPos, length);這個方法
public
static native void arraycopy(Object src, int srcPos,
static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
看見native了,不用多講了,再底層就是C++了。API解讀完了。
刪除元素,就是把即將被刪除元素的後邊的元素往前挪了END – START個位置。然後按長度取就可以了。
相關文章
- js連線多個陣列並刪除重複的元素JS陣列
- JavaScript 陣列新增或者刪除元素JavaScript陣列
- JavaScript 拼接多個陣列並刪除重複元素JavaScript陣列
- JavaScript刪除陣列第一個元素JavaScript陣列
- JS刪除陣列裡的某個元素方法JS陣列
- JavaScript刪除陣列最後一個元素JavaScript陣列
- JavaScript 刪除陣列最後一個元素JavaScript陣列
- JavaScript陣列開頭或者結尾刪除元素JavaScript陣列
- 刪除陣列中的元素(連結串列)陣列
- JavaScript刪除陣列元素JavaScript陣列
- JavaScript 刪除陣列指定元素JavaScript陣列
- JavaScript刪除array陣列元素JavaScript陣列
- js實現在陣列的在陣列的開頭和結尾新增或者刪除元素JS陣列
- PHP 如何根據鍵值刪除一個陣列中的元素PHP陣列
- js如何在陣列的開頭新增和刪除一個元素JS陣列
- JavaScript刪除陣列重複元素的5個高效演算法JavaScript陣列演算法
- php獲取並刪除陣列的第一個和最後一個元素PHP陣列
- Array · 刪除陣列中指定的元素陣列
- PHP 刪除陣列中元素的方式PHP陣列
- 根據陣列的值刪除元素陣列
- js刪除陣列指定索引的元素JS陣列索引
- javascript刪除陣列元素的程式碼JavaScript陣列
- JavaScript 刪除陣列重複元素JavaScript陣列
- JavaScript陣列刪除重複元素JavaScript陣列
- JavaScript刪除陣列中指定元素JavaScript陣列
- js如何合併兩個陣列並且刪除重複的元素JS陣列
- js刪除陣列中重複的元素JS陣列
- js刪除陣列中的重複元素JS陣列
- js刪除陣列元素中的指定值JS陣列
- PHP從陣列中刪除元素的方法PHP陣列
- JS] JS 之刪除陣列中的元素JS陣列
- JavaScript向陣列中一次性追加多個元素JavaScript陣列
- JavaScript 陣列的指定位置插入多個元素JavaScript陣列
- mySql刪除多個表 刪除多個欄位的SQLMySql
- javascript delete運算子刪除array陣列元素JavaScriptdelete陣列
- javascript刪除陣列重複元素程式碼JavaScript陣列
- 【陣列】1550. 存在連續三個奇數的陣列(簡單)陣列
- 刪除陣列中的指定元素例項程式碼陣列