数组

一、数组 

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)

posted on 2019-08-17 16:18  sanguozhi  阅读(148)  评论(0)    收藏  举报