Java中数组的插入,删除,扩张
程序员文章站
2023-12-06 14:05:40
Java中数组是不可变的,但是可以通过本地的arraycop来进行数组的插入,删除,扩张。实际上数组是没变的,只是把原来的数组拷贝到了另一个数组,看起来像是改变了。 语法: System.arraycopy(a,index1,b,index2,c) 含义:从a数组的索引index1开始拷贝c个元素, ......
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 }
上一篇: 素有海上清洁工绰号的海鸟是 支付宝蚂蚁庄园4月1日答案
下一篇: 傲游2网页无声诡异现象解决方法