Skip to content

Latest commit

 

History

History
93 lines (65 loc) · 2.21 KB

File metadata and controls

93 lines (65 loc) · 2.21 KB

第29节 数组的扩容缩容

❤️💕💕java的学习指南,从入门到大师篇章。Myblog:http://nsddd.top


[TOC]

数组扩容

思路: 定义一个新数组,原数组拷贝给新数组

int[] arr = {1,2,3};		//定义原始数组
int[] arrNew = new int[arr.length + 1];

for(int i = 0; i < arr.length; i++) {
    arrNew[i] = arr[i];
}

arrNew[arrNew.length - 1] = 4;		//最后一个元素指向新的元素
arr = arrNew; 		//原来的数组指向新数组

如何实现用户动态添加数组 — 创建一个Scanner可以接收用户输入

Scanner input = new Scanner(System.in);

int[] arr = {1,2,3};		//定义原始数组
do {
    int[] arrNew = new int[arr.length + 1];

    for(int i = 0; i < arr.length; i++) {
        arrNew[i] = arr[i];
    }
	
    System.out.Println("请输入你要添加的元素:");
    int end = input.nextInt();
    arrNew[arrNew.length - 1] = end;		//最后一个元素指向新的元素
    arr = arrNew; 		//原来的数组指向新数组
    
    //问用户是否继续
    System.out.Println("是否继续添加元素 y/N");
    char key = input.next().charAt(0);
    if(key == 'n') {  //输入N结束
        break;
    }
    
}while(true);

数组缩容

Scanner input = new Scanner(System.in);

int[] arr = {1,2,3};		//定义原始数组
do {
    int[] arrNew = new int[arr.length - 1];

    for(int i = 0; i < arrNew.length; i++) {
        arrNew[i] = arr[i];
    }
    arr = arrNew; 		//原来的数组指向新数组
    //问用户是否继续
    System.out.Println("是否继续删除元素 y/N");
    char key = input.next().charAt(0);
    if(key == 'n') {  //输入N结束
        break;
    }
    
}while(true);

END 链接