1.首先先写一个简单的扩容
先上代码
import java.util.Scanner;
public class 草稿 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);//Scanner类
int array[] = {1, 2, 3};//先定义一个静态数组
int arrayNew[] = new int[array.length + 1];//先扩大数组空间
for(int i = 0; i < array.length; i++){//拷贝数值
arrayNew[i] = array[i];
}
System.out.println("输入一个添加的数值");
int num = scanner.nextInt();
arrayNew[arrayNew.length - 1] = num;//添加数值
array = arrayNew;//覆盖数组
for(int i = 0; i < array.length; i++){
System.out.print(array[i] + "\t");
}
}
}
、
可以看到,扩容成功了,但是只扩容了一位数
想想如果要实现输入一个true就扩容一次,该怎么做?
2.实现自定义扩容大小
实现自定义扩容最重要的一点就是使用do-while-break
上代码
import java.util.Scanner;
public class 数组的扩容Importance{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);//Scanner类
int array[] = {1, 2, 3};//先定义一个静态数组
Boolean t;
do {
int arrayNew[] = new int[array.length + 1];
for (int i = 0; i < array.length; i++) {//copy
arrayNew[i] = array[i];
}
System.out.println("输入你要添加的数值");
int num = scanner.nextInt();
arrayNew[arrayNew.length - 1] = num;//添加的数值
array = arrayNew;//销毁原来的array数组,将array指向arrayNew所在空间
System.out.println("数组的值为");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + "\t");
}
System.out.println("");
System.out.println("已扩容成功,继续扩容请输入true,退出请输入false");
t = scanner.nextBoolean();
if(t == false){
System.out.println("退出程序,最后的值为");
for(int i = 0; i < array.length; i++){
System.out.print(array[i] + "\t");
}
break;
}
}while (t == true);
}
}
完美实现,注释已经标注
3.举一反三,实现数组缩减
上代码!!!!!!!!
import java.util.Scanner;
public class b8数组的缩减{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int array[] = {1, 2, 3, 4, 5};
boolean t;
do {
int arrayNew[] = new int[array.length - 1];
for(int i = 0; i < arrayNew.length; i++){
arrayNew[i] = array[i];
}
array = arrayNew;
for(int i = 0; i < array.length; i++){
System.out.print(array[i] + "\t");
}
System.out.println("");
System.out.println("已成功缩减,继续缩减请输入true,退出请输入false");
t = scanner.nextBoolean();
if(t == false){
System.out.println("退出程序,最后的值为");
for(int i = 0; i < array.length; i++){
System.out.print(array[i] + "\t");
}
break;
}
if(array.length == 1){
System.out.println("数组长度已为最小值,无法再缩减,最后的值为");
for(int i = 0; i < array.length; i++){
System.out.print(array[i] + "\t");
}
break;
}
}while (t == true);
}
}
有问题欢迎评论区问,一起学习!