?
?数组添加数据的思路:
?数组删除数据的思路:
代码演示:
import java.util.Scanner;
public class java20210906中部添加 {
public static void main(String[] args) {
//添加扫描仪
Scanner input = new Scanner(System.in);
//定义数组长度
String[] scres = new String[6];
//给数组赋值
scres[0] = "a";
scres[1] = "b";
scres[2] = "c";
scres[3] = "d";
System.out.println("没添加前:");
for (int i = 0; i < scres.length; i++) {
System.out.println(scres[i]);
}
//换行
System.out.println();
System.out.println("请输入要添加数据的下标:");
int Numtamp = input.nextInt();
System.out.println("请输入添加的值:");
String addtampzhi = input.next();
showMiddleAdd(scres, Numtamp, addtampzhi);//数组,插入的位子,出入的数据
System.out.println("添加后:");
for (int i = 0; i < scres.length; i++) {
System.out.println(scres[i]);
}
//换行
System.out.println();
System.out.println("没删除之前:");
for (int i = 0; i < scres.length; i++) {
System.out.println(scres[i]);
}
System.out.println("请输入您要删除数据的下标:");
int dc = input.nextInt();
showDele(scres, dc);//数组名,输出数据的下标
for (int i = 0; i < scres.length; i++) {
System.out.println(scres[i]);
}
}
public static void showMiddleAdd(String[] scres, int index /*下标*/, String addData) {//
//定义一个变量来计算数组的真实长度
int l = 0;
//遍历 求数组真实长度
for (int i = 0; i < scres.length; i++) {
String system = scres[i];
if (system != null) {
l++;
} else {
break;
}
}
//循环; 插入数据数据并数据后移
if (l != scres.length) {//如果数组真实长度 不等于 数组长度 将执行下列代码
//数据后移
for (int i = l - 1; i >= index; i--) { // l为数组真实长度 index 要插入的数据
int addtamp = i + 1;
scres[addtamp] = scres[i];
}
//插入数据
scres[index] = addData;
} else {//如果数组真实长度 等于 数组长度 提示数组已满 不可以添加 将不执行后面方法
System.out.println("数组长度已满,无法添加!");
return;
}
}
public static void showDele(String[] scres, int index /*下标*/) {
//定义一个变量来计算数组的真实长度
int l = 0;
//遍历 求数组真实长度
for (int i = 0; i < scres.length; i++) {//如果数组真实长度 不等于 数组长度 将执行下列代码
String system = scres[i];
if (system != null) {
l++;
} else {
break;
}
}
//循环; 删除数据并数据前移
//数据前移
for (int i = index; i <= l - 1; i++) {
scres[i] = scres[i + 1];
}
//删除最后一个数据 用数组 真实长度-1 得到数组最后一位数,然后让他等于null
scres[l - 1] = null;
}
}
?
|