javaSE--基础部分--数组
本单元目标
一. 数组的排序★
二. 数组的复杂使用★
赋值、反转
三.数组的高级使用★
添加、插入
四.二维数组的基本使用★
调试工具(debug)单步运行。必须掌握
一、数组的排序
2.1冒泡排序🌟
永远拿前面的最大值和下一个值对比
两两对比
如何交换位置?
int temp=a;//暂存
a=b;
b=temp;
此类用于演示的是冒泡排序
1. 将最大的值放在最后一个位置
两两对比,将较大者放在后面
永远拿前面的最大值和下一个值对比
2. 忽略最大值,继续上述操作
1 2 3 for (int i = 0; i < arrs.length-1; i++) { 4 5 for (int j = 0; j < arrs.length-i-1; j++) { 6 7 if(arrs[j]>arrs[j+1]){ 8 9 int temp=arrs[j]; 10 11 arrs[j]=arrs[j+1]; 12 13 arrs[j+1]=temp; 14 15 } 16 17 } 18 19 }
2.2 选择排序
查出最大值的索引值,直接跟最后一个位置互换。
1.将最大的值放在最后一个位置
找到最大值,然后和最后一个位置进行互换
2. 忽略最后一个 然后进行上述操作
1 2 3 for (int i = 0; i < arrs.length-1; i++) { 4 5 int max=0; 6 7 int index=0; 8 9 for (int j = 0; j < arrs.length-i; j++) { 10 11 if(arrs[j]>max){ 12 13 max=arrs[j]; 14 15 index=j;//获得当前最大值的下标 16 17 } 18 19 } 20 21 if(index!=arrs.length-i-1){ 22 23 int temp=arrs[index]; 24 25 arrs[index]=arrs[arrs.length-i-1]; 26 27 arrs[arrs.length-i-1]=temp; 28 29 }
二、数组的复杂使用
2.1 赋值
(1) 直接将地址进行赋值
int [] arr1=new int{3,4,5}
int arr2=arr1;
注意:不管改那个数组,另一个都会变化
(2)重新开辟内存空间,循环赋值,两个数组互不影响,占内存效率低
int[] arr1=new int[]{3,5,67,8}; int[] arr2=new int[arr1.length]; for (int i = 0; i < arr2.length; i++) { arr2[i]=arr1[i]; }
注意:对其中一个更改,另一个不受影响
2.2。反转
a。新建一个数组,将原数组内容倒序赋值给新数组,再将新数组的地址赋给原数组。
b。头尾互换。注意;奇数和偶数length/2
此类用于演示数组的反转
@author Administrator
a .新建一个数组,将原数组内容倒序赋值给新数组 在将新数组的地址赋值给原数组
int[] arr={3,5,7};//原数组
int[] arr2=new int[arr.length];//新建的数组
//将原数组内容倒序赋值给新数组
int j=0;
for (int i = arr.length-1; i >=0; i--) {
arr2[j]=arr[i];
j++;
}
arr=arr2;新数组的地址赋值给原数组
b. 在本数组内进行反转
int[] arr={3,5,7,34,12,45,6};
for (int i = 0; i < arr.length/2; i++) {
int temp=arr[i];
arr[i]=arr[arr.length-i-1];
arr[arr.length-i-1]=temp;
}
镜像:头尾互换
4. 数组的高级使用
添加
此类用于演示数组的添加
@author Administrator
a. 一个未知数组
1. 判断该数组是否还有空余空间
1.1 有
找一个空位置放下
获得空位置的下标,在该下标位置进行赋值
1.2没有(扩容)
int[] arr1=new int[arr.length+1];//新建一个数组 长度比原数组要长(length+1)
for (int i = 0; i < arr.length; i++) {//将原数组内容赋值到新数组中
arr1[i]=arr[i];
}
arr1[arr1.length-1]=num;//将数据添加到最后一个位置
arr=arr1;//将新数组的内存地址赋值给原数组
插入
此类用于演示数组的插入
@author Administrator
1. 数据的后移 index想要插入数据的下标
for (int i = arr.length-1; i >index; i--) {
arr[i]=arr[i-1];
}
2. 直接将数据放入到指定下标
arr[index]=num;
Day07
本单元内容
一. 二维数组的基本使用★
1. 异常类型
NullPointerException 空指针异常 null.
一.二维数组的基本使用
一维数组:存储一组相同类型的数据
二维数组:存储多组相同类型的数据
二维数组的默认值:null
一维数组的默认值是:0
1)二维数组的创建:数据类型要确定,长度要确定
a 声明一个二维数组
int 【】【】arrs;
b 开辟内存空间
arrs =new int【5】【】;
没有制定小数组的长度,
arrs【0】=new int【6】;
c 存值
arrs【4】【3】=12;
d 取值
二维数组的静态初始化
int【】【】arrs= {{1,3,4,5,5}{1,3,4}{2,3,4.6}};