java数组插入(添加)数据和删除数据

本文介绍了如何在Java中使用Scanner实现数组的动态添加和删除数据,通过实例演示了数组中间插入和删除的方法,并提供了代码片段。

 数组添加数据的思路:

 数组删除数据的思路:

代码演示:

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;
    }
}

 

### 如何在 Java 中向二维数组插入数据Java 中,可以创建一个 `ArrayList` 的嵌套结构来表示二维动态数组。通过这种方式,可以在运行时灵活地添加删除元素。下面是一个完整的例子,展示如何创建并操作这样的二维 `ArrayList`。 #### 创建二维 ArrayList 并插入数据 以下是具体的代码实现: ```java import java.util.ArrayList; public class Main { public static void main(String[] args) { // 初始化一个空的二维 ArrayList ArrayList<ArrayList<String>> twoDimList = new ArrayList<>(); // 向外层 ArrayList 添加新的内层 ArrayList for (int i = 0; i < 3; i++) { twoDimList.add(new ArrayList<>()); } // 插入具体的数据到二维 ArrayList 中 twoDimList.get(0).add("String One"); twoDimList.get(0).add("String Two"); twoDimList.get(0).add("String Three"); twoDimList.get(1).add(null); twoDimList.get(1).add(null); twoDimList.get(2).add(null); twoDimList.get(2).add(null); // 打印结果 System.out.println(twoDimList.toString()); } } ``` 上述代码展示了如何构建一个类似于给定输出的结果[^1]。它首先初始化了一个外部 `ArrayList`,然后逐行为每一行分配一个新的内部 `ArrayList`。接着,按照需求填充这些列表中的字符串或者 `null` 值。 #### 输出解释 执行以上程序后,打印出来的结果将是如下形式: ``` [[String One, String Two, String Three], [null, null], [null, null]] ``` 这与引用中提到的目标格式非常接近。 --- ### 关于其他相关内容的补充说明 虽然本问题主要关注的是 Java 中的操作方法,但为了提供更全面的信息,还可以提及一些扩展知识点。例如,在处理复杂数据结构时,可能会涉及多线程同步、序列化等问题。如果需要进一步探讨概率网格(如 Probability Grid Range Data Inserter),则可参考 C++ 实现细节[^2]以及坐标变换逻辑[^4]。 此外,对于图像编码场景下使用的 LZW 编码器构造函数[^3],也可以作为另一个方向深入研究的内容之一。 ---
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSOA6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值