Java中數組的插入,刪除,擴張
阿新 • • 發佈:2019-03-24
style 返回 lse ++ 拷貝 java 數組 tel i++
Java中數組是不可變的,但是可以通過本地的arraycop來進行數組的插入,刪除,擴張。實際上數組是沒變的,只是把原來的數組拷貝到了另一個數組,看起來像是改變了。
語法:
System.arraycopy(a,index1,b,index2,c)
含義:從a數組的索引index1開始拷貝c個元素,拷貝到數組b中索引index2開始的c個位置上。
1 package cn.hst.hh; 2 3 import java.util.Scanner; 4 5 /** 6 * 7 * @author Trista 8 * 9 */10 public class TestArrayCopy { 11 public static void main(String[] agrs) { 12 Scanner a = new Scanner(System.in); 13 System.out.println("請輸入數組(註意空格):"); 14 String s = a.nextLine(); 15 String[] s1 = s.split(" "); //拆分字符串成字符串數組 16 System.out.println("請輸入你要插入的元素的個數:");17 int n = a.nextInt(); 18 System.out.println("請輸入你要插入的位置:"); 19 int index = a.nextInt(); 20 s1 = addArray(s1,n,index); 21 print1(s1); 22 23 // System.out.println("請輸入需要擴大元素的個數:"); 24 // int n = a.nextInt(); 25 // s1 = extendArray(s1,n);26 // print1(s1); 27 // 28 // System.out.println("請輸入你要刪除元素的位置:"); 29 // int n = a.nextInt(); 30 // s1 = delArray(s1,n); 31 // print1(s1); 32 } 33 34 35 //擴張數組,n為擴大多少個 36 public static String[] extendArray(String[] a,int n) { 37 String[] s2 = new String[a.length+n]; 38 System.arraycopy(a,0, s2, 0, a.length); 39 return s2; 40 } 41 //刪除數組中指定索引位置的元素,並將原數組返回 42 public static String[] delArray(String[] b,int index) { 43 System.arraycopy(b, index+1, b, index, b.length-1-index); 44 b[b.length-1] = null; 45 return b; 46 } 47 48 //插入元素 49 public static String[] addArray(String[] c,int n,int index) { 50 String[] c1 = new String[c.length+n]; 51 String[] a1 = new String[n]; 52 if(index==0) { 53 System.arraycopy(c, 0, c1, n, c.length); 54 }else if(index==c.length) { 55 System.arraycopy(c,0,c1,0,c.length); 56 57 }else { 58 System.arraycopy(c,0,c1,0,index); 59 System.arraycopy(c,index,c1,index+n,c.length-index); 60 61 } 62 a1 = getElement(); 63 for(int i=0;i<n;i++) { 64 c1[index+i]=a1[i]; 65 } 66 return c1; 67 } 68 69 //打印結果 70 public static void print1(String[] c1) { 71 for(int i=0;i<c1.length;i++) { 72 System.out.print(i+":"+c1[i]+" "); 73 } 74 System.out.println(); 75 } 76 77 //獲取需要插入的元素 78 public static String[] getElement() { 79 Scanner b1 = new Scanner(System.in); 80 System.out.println("請輸入需要插入的元素(註意空格):"); 81 String a = b1.nextLine(); 82 String[] a1 = a.split(" "); 83 return a1; 84 } 85 }
Java中數組的插入,刪除,擴張