一、数组
Java中数组是相同类型数据的有序集合。每个数组元素可以通过一个下标来访问,下标从0开始。
数组的特性:[1] 数组长度确定。数组一旦创建,未来长度不能发生改变。[2] 数组的元素类型都相同。[3] 数组是有序的。[4]数组是引用数据类型。
[5]每个数组元素有默认值,double:0.0,boolean:false,int:0
二、冒泡排序
①外层循环,它决定一共走几趟,for (int i = 0; i <a.length-1; ++i)
②内层循环,它决定每趟走一次,for (int j = 0; j <a.length-i-1 ; ++j)
③内层中,两两排序
三、选择排序
①外层循环,for (int i = 0; i < a.length - 1; i++),可认为第i个数是最小的,int minIndex = i;
②内层循环,寻找真实最小的下标,for (int j = i + 1; j < a.length; j++) { if (a[ minIndex ] > arr[ j ]) { minIndex = j;} }
③退出内层,minIndex 和 i 互换
四、插入排序
①int i,j;外层循环,for (i = 1; i < a.length ; i++),获取该元素 temp=a[ i ],从第二个元素开始,从后向前扫描
②内层循环,for (j = i; j > 0 && temp < arr[j - 1]; j--),从后向前扫描,满足循环条件(在这里排序):a[ j ] = arr[ j - 1 ]
③退出内层,arr[ j ] = temp
五、数组和可变参数做方法参数的联系和区别
1、联系:①实参都可以是数组;②方法体中,可变参数当做数组来处理
2、区别:①可变参数只能是方法的形参,可变参数好处:方便 简单 减少重载方法的数量
②如果方法定义了可变参数,不允许同时定义相同类型数组参数
③可变参数只能有一个且只能是最后一个;数组参数可以多个,参数位置任意
④可变参数实参可以0,1,2.....个,也可以是一个数组,数组的实参只能是数组
六、二维数组
二维数组本质上是一个一维数组,这个数组的每个元素是一个一维数组。
二维数组是一种行列结构,遍历采用双重循环。
七、Arrays
java.util.Arrays类,常用方法,例如排序Arrays.sort(arr)、二分法查找(必须排序过)Arrays.binarySearch(arr,item)、快速输出Arrays.toString(arr)、比较Arrays.equals(arr1,arr2)、复制Arrays.copyOf(arr,newLength)(截取或用 0填)、System.arraycopy(arr,oldIndex,newArr,newIndex,newLength)