数组
一、数组
Java中数组是相同类型数据的有序集合。每个数组元素可以通过一个下标来访问,下标从0开始。
数组声明:①数据类型[ ] 数组名(推荐写法) ②数据类型 数组名[ ]
数组赋值,以int [ ]a为例:①a = new int[5];a[0] = 10...a[4] = 10;②a = new int[ ]{10,20,30,40,50},③a = {10,20,30,40};
数组的特性:[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.....个,也可以是一个数组,数组的实参只能是数组
六、二维数组
二维数组本质上是一个一维数组,这个数组的每个元素是一个一维数组。
二维数组声明并赋值:①int[ ][ ] arr1 = new int[4][ ];int [ ]a1 = {10,20,30,40;arr1[0] = a1......arr1[3] = a4;
②int[ ][ ] arr2 = new int[4][5];arr2[0][0] = 1......arr2[3][4] = 20;
③int[ ][ ] arr3 = { {1,2,3},{10,20,30},{100,200,300,400} };
二维数组是一种行列结构,遍历采用双重循环。
七、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)
浙公网安备 33010602011771号