数组
2023-04-10 20:31:18 13 举报
AI智能生成
思维导图
作者其他创作
大纲/内容
数组的排序<br>
冒泡排序<br>
思想:- 1.将相邻的两个元素进行比较,如果前面一个元素比后面的大,就交换位置(一轮比较) 直到比较完 整个数组,称为一轮<br> - 在这一轮可以将最大的值 比较到最后<br>- 2.以上操作需要完成的次数数组长度-1<br>
选择排序
思想:- 1.将当前这个位置上的元素与后面的每一个元素进行比较,如果有比当前位置小的元素,先记录下来,等所有元素比较完,进行交换 <br> - 一次循环可以将最小的交换到最左边<br>- 2.以上操作可以将最小的选择到指定位置。<br>
Arrays工具类提供的排序方法<br>
Arrays.sort(数组名);
二分查找法(折半查找法)<br>
前提
前提:数组必须有序的题<br>
思想:<br>
- 1.首先确实数组中的中间元素,与你要查找的元素进行比较。如果相等那么就是你要找的数本身<br>- 2.如果比中间元素大,那么要找的数一定在中间元素的右边 所以最小值小下标等于 中间值的下标+1<br>- 3.如果比中间元素小,那么要找的数一定在中间元素的左边 所以最大值小下标等于 中间值的下标-1<br>
二维数组<br>
二维数组中存放的每一个元素,是一个一维数组。
二维数组的创建
静态<br>
int [][] arr={{11,22,33},{44,55},{66}};
动态<br>
注意
二维数组在动态初始化的时候 可以先不指定一维数组长度 但必须要指定二维数组的长度
int [][] arr1=new int[3][ ];
一维数组可以先不指定 但是一旦指定了长就固定了<br>
/如果在定义二维数组的时候没有给一维数组传入长度 那么在使用之前一定要初始化 不然 空指针异常
int [][] arr1=new int[3][2];<br>
二维数组遍历
可变参数<br>
特点
1.带有可变参数的方法进行调用的时候 实参个数 可以是0个 也可以是多个<br>
2.可变参数只能放在参数列表的最后 并且 可变参数一个方法只能有一个<br>
3.可变参数可以当作数组来使用 也可以将数组作为参数<br>
数组<br>
概念
数组在内存中一块连续的存储空间,可以保存 相同类型 多个数据的容器哦 且 长度固定。<br>
特点
数组保存保存的数据必须是相同的数据类型<br>
数组的长度是固定的(一旦定义好 不可改变)<br>
数组的创建
动态初始化
数据类型 [ ] 数组名 = new 数据类型 [ 长度]<br>
数据类型 数组名[ ] =new 数据类型[ 长度]<br>
静态初始化
数据类型 [ ] 数组名={数据1 , 数据 2,数据3,数据4...... }<br>
数据类型 数组名[ ] = { 数据1 , 数据 2 , 数据3 ,数据4 }<br>
数据类型 [ ] 数组名 =new 数据类型[] { 数据1 , 数据 2,数据3,数据4...... }
数组的默认值<br>(在数组创建的时候没有赋值的时候是有默认值的)
<ul><li>整数型数组默认值:0</li><li>浮点型默认值:0.0</li><li>布尔型数组默认值:false</li><li>字符型数组默认值:‘ ’ 0 或者‘ \u0000’</li><li>引用类型默认值是:nul(<b style="">null 是一个特殊的值 表示当前对象在内存当中不指向任何地址</b>)</li></ul>
子主题
数组的扩容、缩容<br>
扩容
1.定义一个新的数组<br>2.将原数组的值依次赋值给新数组<br>3.将数组名指向新数组的地址<br>
int[] newArr=new int[oldArr.length+5];<br>for (int i = 0; i <oldArr.length ; i++) {<br> newArr[i]=oldArr[i];<br> }<br>System.out.println(oldArr);<br>oldArr=newArr;<br>
系统提供的扩容方法
System.arraycopy<br>
int[] oldArr={11,22,33,44,55};<br> int[] newArr=new int[oldArr.length+5];<br>System.arraycopy(oldArr,0,newArr,0,oldArr.length);<br>
Arrays.copyOf<br>
int[] newArr = Arrays.copyOf(oldArr, oldArr.length + 5);
缩容
0 条评论
下一页