[英]Java: Inserting an Element into an array while moving items to the right
假設我有一個數組: {5, 7, 8, 9, 10}
。 但是,我想插入一個元素,使數組變為{5, 6, 7, 8, 9}
在5
和7
之間插入6
,將10
移出並將9
向右移動。
如何使用數組和 for 循環來解決這個問題?
數組是非常低級的構造,沒有為您執行此操作的方法。 ArrayList
做了哪些應該用於這樣的工作。
如果,作為純粹的學術練習,永遠不應該將其投入生產,那么您對 ArrayList 的作者如何做出這樣的事情感到好奇:
通過...只是...做它。
分解步驟並執行所有步驟。
Starting state: [5, 7, 8, 9, 10]
Desired state: [5, 6, 7, 8, 9 ]
換句話說,我們需要將 7/8/9 復制到新位置以騰出空間。 完成后,我們可以編寫6。
int[] in = {5, 7, 8, 9, 10};
// Copy starting from index 1 (second number)
// Copy into the same array, at index 2.
// ... and copy 3 numbers.
System.arraycopy(in, 1, in, 2, 3);
System.out.println(Arrays.toString(in));
// Prints: [5, 7, 7, 8, 9].
in[1] = 6;
System.out.println(Arrays.toString(in));
// Prints: [5, 6, 7, 8, 9].
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.