360免费建站李梦,北京 顺义 网站制作,一家公司做两个网站吗,无锡网站建设网站TOC
第一章、数组的概念介绍
1.1#xff09;数组的概念
①数组就是用来储存数据的容器,可以存储同一种类型的数据#xff0c;是同一种数据类型的集合。实现对这些数据的统一管理。如果数组中存储的是基本类型数据#xff0c;我就不能往里面存引用类型数据。数组中存储的…TOC
第一章、数组的概念介绍
1.1数组的概念
①数组就是用来储存数据的容器,可以存储同一种类型的数据是同一种数据类型的集合。实现对这些数据的统一管理。如果数组中存储的是基本类型数据我就不能往里面存引用类型数据。数组中存储的是引用类型数据我就不能往里面存基本类型数据。
②数组容器存储的可以是引用类型数据或者基础类型数据但数组本身属于引用类型变量。
③数组是线性数据结构有固定长度和大小的概念数组长度一旦确定了就不可以改变
我们称为长度length。
④数组有索引的概念数组中的元素从0开始编号这个编号我们称为下标index因为是从0开始编号所以索引最大值为length-1。
1.2数组的初始化
以创建一个长度为5的int类型的数组举例
①动态初始化初始化只确定元素个数等需要时再添加元素
数组中保存的数据类型[] 数组的名字 new 数组中保存的数据类型[存储的元素个数] int[] arr new int[5];②静态初始化2初始化的时候就确定 里面的元素
数组中保存的数据类型[] 数组名字 new 数组中保存的数据类型[]{元素1,元素2,元素3,元素4,元素5}; int[] arr new int [] {1,2,3,4,5};③静态初始化2初始化的时候就确定 里面的元素
数组中保存的数据类型[] 数组名字 {元素1,元素2,元素3,元素4,元素5}; int[] arr {1,2,3,4,5};
第二章、数组的使用
2.1数组添加元素的方法/数组的赋值
在动态初始化后我们要单独为数组添加元素也就是赋值操作。
①赋值操作添加元素设置元素值操作 数组名配合下标,注意下标从零开始。
数组名[下标]需要添加的元素arr [0] 1 ;
arr [1] 2 ;
arr [2] 3 ;
arr [3] 4 ;
arr [4] 5 ;2.2数组的遍历
①当我们需要查看数组里面的内容。最基础的是使用for循环遍历的方法查看 //遍历arr数组元素打印元素内容看效果for(int i 0;i arr.length - 1;i){//数组名arr 配合下标i 获取元素值System.out.println(arr[i]);}②使用do while循环遍历arr数组元素
//使用do while循环遍历arr数组元素打印查看效果int j 0;do{System.out.print(arr2[j] );j;}while(j arr2.length - 1);2.3数组排序
①数组之选择排序的升序
选择排序从数组空间中选择第一个数据和后面空间中的数据进行比较比较完之后将最小的数据和当前的第一个空间中的数据进行互换位置。然后再选择第二个元素和除第一个空间中的数据进行比较同样找出最小的数据将两个空间中的数据的位置互换。后面的数据以此类推一直到将所有的数据变成从小变大的数据为止
//定义arr数组
int[] arr {11,22,33,44,55,66};//外层循环控制轮数
for(int i 0;i arr.length - 2;i){//内层循环控制每一轮执行的次数for(int j i 1;j arr.length - 1;j){if(arr[i] arr[j]){int temp arr[i];arr[i] arr[j];arr[j] temp;}}}②数组之冒泡排序的升序
冒泡排序Bubble Sort通过对排序序列从前向后从下标较小的元素开始依次比较相邻元素的值若发现逆序则交换使得值比较大的元素逐渐从前向后移动就像水底下的气泡一样逐渐向上冒。
//定义arr数组
int[] arr {11,22,33,44,55,66};//冒泡排序
for(int i 0 ;i arr.length -1; i){for(int j 0; jarr.length-1-i; j){if(arr[j]arr[j1]){temp arr[j];arr[j] arr[j1];arr[j1] temp;}}}2.4数组的最小值
//定义arr数组
int[] arr {11,22,33,44,55,66};int min arr[0]; //假设0索引位置的元素是最小的for(int i 0;i arr.length - 1;i){if(arr[i] min){//说明当前元素的内容小于min的值为min重新赋值min arr[i];}}2.5数组的反转
①第一种反转
//定义arr数组
int[] arr {11,22,33,44,55,66};//反转
for(int i 0;i arr.length / 2;i){int temp arr[i];arr[i] arr[arr.length - 1 - i];arr[arr.length - 1 - i] temp;②第二种反转
//定义arr数组
int[] arr {11,22,33,44,55,66};for(int i 0,j arr.length - 1;i j;i,j--){int temp arr[i];arr[i] arr[j];arr[j] temp;}③第三种反转
//定义arr数组
int[] arr {11,22,33,44,55,66};//创建新的int数组长度和原数组保持一致
int[] newArr new int[arr.length];//反向遍历arr数组元素赋值操作int i arr.length - 1; //此处的i只能关联arr数组元素位置int j 0; //此处的j关联的是newArr数组元素位置while(i 0){newArr[j] arr[i];i--;j;}}2.6数组中常见的异常
①空指针异常
//运行时异常 空指针异常java.lang.NullPointerException//使用静态初始化创建数组
int[] arr2 {11,22,33,44,55};//使数组为null里面不在有数据
arr2 null;//arr是null的情况下去使用他。null值无法进行调用的行为
//一旦null值调用了类的成员(属性、方法)一定空指针!!!System.out.println(arr2[0]);
System.out.println(arr2.length);②越界异常
//运行时异常 数组下标越界异常
//java.lang.ArrayIndexOutOfBoundsException: 1000
//java.lang.ArrayIndexOutOfBoundsException: -10//先创建长度为10的数组
int[] arr new int[10];//我把下标写成了1000可是数组的长度并没有这么长于是出现越界异常
System.out.println(arr[1000]);//我把下标写成了-10可是数组的长度不可能为负数于是出现越界异常
System.out.println(arr[-10]);第三章、二维数组
本质上就是以数组作为数组元素的数组。
3.1二维数组定义
①动态创建一个二维数组包含五个一维数组每个一维数组的长度尚未确定。
//创建二维数组
int[][] arr new int[5][];②动态创建一个二维数组包含五个一维数组每个一维数组里长度为5。
//创建二维数组对象
int[][] arr new int[5][5];③静态创建一个二维数组包含3个一维数组每个一维数组里长度为3并且直接赋值。
int arr[][]{{1,2,3},{3,4,5},{5,6,7}};3.2二维数组的赋值
①直接赋值
//创建二维数组容器
int[][] arr new int[3][3];//直接赋值到
arr[1][0] 20;
arr[1][1] 20;//打印输出
System.out.println(arr[0][0] arr[0][0]);
System.out.println(arr[1][0] arr[1][0]);
System.out.println(arr[1][1] arr[1][1]); 打印结果如图未赋值的默认为0。
②用for循环赋值
//创建二维数组对象
int[][] arr new int[5][];//外层循环控制行数 定位二维数组的每个元素空间 for(int i 0;i arr.length - 1;i){//创建一维数组容器关联当前二维数组的元素位置arr[i] new int[i 1];//内层循环控制当前行的列数 -- 为当前一维数组的每个元素进行赋值操作for(int j 0;j arr[i].length - 1;j){//赋值操作arr[i][j] i 1;//打印展示操作System.out.print(arr[i][j]);}//单独换行System.out.println();}打印结果如图