数组的增删操作

数组的增删操作

一.数组是一种存储数据的容器 是多个相同数据类型的集合
数组的初始化有三种:
1.静态初始化
2.默认初始化
3.动态初始化
注意:数组的默认值是null
数组中常见的异常:空指针异常的情NullPointerException
数组越界异常 ArrayIndexOutofBoundsException

public class ArrayTest02 {
public static void main(String[] args) {
//静态初始化
int[] arr = {0,5,8,6,5,};
System.out.println(arr.length);//5
System.out.println(arr[arr.length-1]);//5

    //默认初始化
    int[] arr2 = new int[5];
    System.out.println(arr2[3]);//int默认为0

    boolean[] arr3 = new boolean[3];
    System.out.println(arr3[2]);//布尔默认为false

    //动态初始化
    int[] arr4 = new int[5];
    arr4[2] = 55; //可以任意给数组的每个元素赋值

    char[] arr5 = new char[2];
    System.out.println(arr5[1]);

    long[] arr6 = new long[5];
    System.out.println(arr6[0]);

二.数组的删除操作
FFFFFF,t_70#pic_center)

//删除数组的指定下标
//完成数组元素的删除操作。
public class DeleteArray {
public static void main(String[] args) {
//1.定义一个数组
int[] oldArr = {5,2,6,4,5,9,7};
//2.请您输入一个要删除的元素
Scanner sc = new Scanner(System.in);
int index= sc.nextInt();

    //3.定义一个方法来进行删除的操作
    int[] newArr = deleteArr(oldArr, index);
    System.out.println(Arrays.toString(newArr));
}

private static int[] deleteArr(int[] oldArr, int index) {
    //4.引入序号 然后把序号后面的位数往前移动一位 记得长度减一因为要把最后一位留着
    for (int i=index;i<oldArr.length-1;i++){
            oldArr[i]=oldArr[i+1];
    }
    //5.把最后一位数赋值为0;
    oldArr[oldArr.length-1]=0;
    return oldArr;
}

}
1.进行元素删除的时候定义一个方法 在删除的时候一定要注意元素的索引
2.如果没有进行长度减一的时候会出现数组越界异常 因为你要把后面的值赋值给前一个索引 就会导致在循环的时候 数组越界
3.在对数组进行操作的时候很容易就会出现越界的情况 如果找不出的话 就尝试着debug一下 应该就很容易找出

三.数组的增加操作
在这里插入图片描述
//3.添加元素到数组的指定索引。
public class AddIndex {
public static void main(String[] args) {
//1.先定义两个数组
int[] oldArr = {5,6,1,2,3,7,};
int[] newArr=new int[oldArr.length+1];
//输入一个增加的下标
Scanner scanner = new Scanner(System.in);
System.out.println(“请输入您要添加元素的位置”);
int index = scanner.nextInt();

    // 定义一个方法用来添加元素
    int[] arr = addEle(oldArr,newArr,index);
   //打印输出元素
    System.out.println(Arrays.toString(arr));
}

private static int[] addEle(int[] oldArr, int[] newArr, int index) {
    //把旧的数组分为三部分分别复制到新数组中
    for (int i=0;i<index;i++){
        newArr[i]=oldArr[i];
    }
    //输入要添加的元素
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入您要添加的数字:");
    int num = scanner.nextInt();
    newArr[index]=num;

    for (int i=index+1;i<newArr.length;i++){
        newArr[i]=oldArr[i-1];
    }
    return newArr;
}

}
***1.数组的增加操作 相对于数组的删除稍微麻烦一点 如果不理解的可以画一下图来思考一下 慢慢理清思路就会很容易想到
2.不同的是 数组的长度一旦定义了就是不可改变的这也是他的缺点之一 】所以如果想要对数组进行增加 这时候你就要重新创建一个数组
3.把老的数组复制到新的数组里面 同样的也要注意的是 数组越界异常的问题
4.你需要对那些变量或者 数组操作你就要引入形参 ***

四.当然了总有牛的大佬 所以数组的工具类就出来了Arrays
Arrays.sort
Arrays.toString
Arrays.fill
Arrays.binarySearch
Arrays.equals
这些工具类可以简化代码 更加的方便快捷 但是在我看来 还是要进行练习的 不仅可以锻炼你的逻辑思维能力 还可以让保持你的手感敲代码的 哈哈哈

当我们刚学习到这个数组的时候感觉还行 但是当你进行增删操作的时候就是真的有一点点绕 哈哈(大佬除外 大佬除外 大佬除外 重要的事说三遍 )经过我反复的练习 总结了一点知识点 就拿出来给大家分享一下 也是第一次写博客 哪里不对 可以指出来 大家一起进步 一起秃顶 …

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值