模拟扩容,由于不能使用方法,有些局限,可以运行看看。根据录入提示进行测试:
package developer.test;
/**
* 默认创建一个长度为10的string数组,用户可以循环手动添加数据,当添加数据超过数组长度时,数组需要扩容,输入-1停止输入,不使用方法下去实现
*/
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) { // TODO 自动生成的方法存根
Scanner input = new Scanner(System.in);
int l=10;
System.out.println("请定义数组的初始长度,默认为10,输入0则忽略,维持默认状态。");
int length = input.nextInt();
if(length!=0){
l=length;
}
System.out.println("数组的初始长度为"+l);
String[] str = new String[l];
String num = "";
int count = 0;
while (true) {
for (int i = 0; i < str.length; i++) {
System.out.println("请添加数据:");
str[i] = input.next();
count++;
if (count == str.length) {
System.out.println("数据达到数组的长度,数组是否需要扩容?扩容请输入1,输入其他则停止");
String question = input.next();
if (question.equals("1")) {
System.out.println("请定义扩容后的数组长度:");
int len = input.nextInt();
String[] str2 = new String[len];
for (int j = 0; j < str.length; j++) {
String s = str[j];
str2[j] = s;
}
System.out.println("扩容后的数组为:");
for (int j = 0; j < str2.length; j++) {
System.out.println(str2[j]);
}
}
break;
}
if (str[i].equals("-1")) {
System.out.println("你输入了-1,程序现在停止输入");
break;
}
}
break;
}
}
}