首页 > 代码库 > 数组的添加 删除 和拷贝

数组的添加 删除 和拷贝

//数组的添加
public class ArrAddDemo {
static void addLast(){
//添加一个数100到数组末尾
int[] oldArr=new int[]{45,56,12,78,88};
int[] newArr=new int[oldArr.length+1];
for(int i=0;i<oldArr.length;i++){
newArr[i]=oldArr[i];
}
newArr[newArr.length-1]=100;

for(int i=0;i<newArr.length;i++){
System.out.println(newArr[i]);
}
}


//插入到数组第一个位置
static void addFirst(){
int[] oldArr=new int[]{45,56,12,78,88};
int[] newArr=new int[oldArr.length+1];
for(int i=0;i<oldArr.length;i++){
newArr[i+1]=oldArr[i];
}

newArr[0]=100;

for(int i=0;i<newArr.length;i++){
System.out.println(newArr[i]);
}
}

//放到第三个位置
static void putThirdPos(){
int[] oldArr=new int[]{45,56,12,78,88};
int[] newArr=new int[oldArr.length+1];
int index=2;
for(int i=0;i<oldArr.length;i++){
if(i<index){
newArr[i]=oldArr[i];
}else{
newArr[i+1]=oldArr[i];
}
}
newArr[index]=100;

for(int i=0;i<newArr.length;i++){
System.out.println(newArr[i]);
}
}


public static void main(String[] args) {
//ArrAddDemo.addLast();
//addFirst();
putThirdPos();
}
}

import java.util.Scanner;

//删除数组中的元素
public class ArrayDeleteDemo {
/*
* 1.确定要删除哪个元素
* 2.确定删除元素的下标
* 3.再把原来的元素复制到新数组
*/
public static void main(String[] args) {
int[] arr=new int[]{1,2,3,4,5,6,7};
int[] newArr=new int[arr.length-1];
Scanner input=new Scanner(System.in);
System.out.println("请输入要删除的元素:");
int num=input.nextInt();
int index=-1;

//求出删除元素的下标
for(int i=0;i<arr.length;i++){
if(num==arr[i]){
index=i;
break;
}
}

//再把原来的元素复制到新数组
for(int i=0;i<arr.length;i++){
if(i<index){
newArr[i]=arr[i];
}else{
newArr[i]=arr[i+1];
}
}

//打印新数组
for(int i=0;i<newArr.length;i++){
System.out.println(" "+newArr[i]);
}

}
}

//数组的拷贝
public class ArrayCopyDemo {
public static void main(String[] args) {
int[] src=http://www.mamicode.com/new int[]{1,2,3,4,5,6,7,8,9,10}; //源数组
int[] dest=new int[src.length];//0 0 0 0 0 3 4 5 6 0
//需求是 arr里卖弄的3,4,5,6 复制到 新数组 从下标为5 开始
print(dest);
System.out.println();

System.arraycopy(src, 2, dest, 5, 5);
//ArrayCopyDemo.copy(src,2,dest,5,4);
print(dest);
/*
* src 表示原数组
* 2表示 也就是复制第一个数的下标位置
* dest 表示新数组
* 5 表示 从新数组哪个位置开始复制
* 4 表示 复制元素的个数
*
* java.lang System这个类里
* public static native void arraycopy(Object src, int srcPos,Object dest, int destPos,int length);
* 本地的,c/c++实现写好的,java直接调用
*
*/
}

/*static void copy(int[] arr,int arrPos,int[] newArr,int newArrPos,int length){
for(int i=arrPos;i<arrPos+length;i++){
newArr[newArrPos]=arr[i];
newArrPos++;
}
}*/


static void print(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}

数组的添加 删除 和拷贝