数组的增删操作
一.数组是一种存储数据的容器 是多个相同数据类型的集合
数组的初始化有三种:
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
这些工具类可以简化代码 更加的方便快捷 但是在我看来 还是要进行练习的 不仅可以锻炼你的逻辑思维能力 还可以让保持你的手感敲代码的 哈哈哈
当我们刚学习到这个数组的时候感觉还行 但是当你进行增删操作的时候就是真的有一点点绕 哈哈(大佬除外 大佬除外 大佬除外 重要的事说三遍 )经过我反复的练习 总结了一点知识点 就拿出来给大家分享一下 也是第一次写博客 哪里不对 可以指出来 大家一起进步 一起秃顶 …