1.一维数组:1)先声明: int arr[]; String str[]; 然后给数组分配内存:arr =new int[5]; --要指定数组元素的类型和数组元素的个数 ,初始时候每个元素的初始值都是0
2)声明的时候同时为数组分配内存: int month[] = new int[12]; --指定数组长度为12
2.初始化一维数组:int arr[]=new int[]{1,2,3,4,5} ; int arr2[]={34,23,12,6}; --两种初始方式都可以
3.使用一维数组:用下标,例如i=2;arr[2]
4.二维数组:int arr[][]; --分配内存的方法-1)a =new in[2][4] ;(a[0],a[1]长度一样都是4)
2)分别为每一维分配内存: a=new int [2][]; a[0]=new int[2]; a[1]=new int[4];(a[0]长度是2,a[4]长度是4,注意这种可以不一样)
二维数组初始化:int arr[][] ={{12,0},{45,0}}
5。使用二维数组:与矩阵相连着: int a[][]=new int[3][4];
for (int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
Systrm.out.print(a[i][j]);}}
6.数组的基本操作:1).遍历数组:见上面的例子 ,还有一种方法见书p108
2).填充替换数组元素:int arr[] =new int[]{45,12,2,10}; Arrays.fill(arr,1,2,8); 就是从1到2,不包括替换成8,然后输出为45,8,2,10
3.)对数组进行排序:Arrays.sort(arr) --默认对数组进行升序排序,可以重载,默认int?没有返回值
4).复制数组:Arrays.copyOf(arr,5) ---5为新的一个数组的长度,arr为要复制的数组 ,copyOfRange(arr,0,3)---复制数组
5).数组查询:Arrays.binarySearch(arr,0,1,8); --二分查找,从0到1查找8,但是不包括1.
Arrays.binarySearch(arr,4)--查找4
二分查找使用前要进行排序。即Arrays.sort(ai);
7.数组排序算法:1)冒泡排序:小数往前放,大数往后放,类似于水中气泡往上升,就是对比相邻的元素值。 双循环
public void sort(int[] array){
for (int i = 1;i < array.length;i++){
for(int j = 0;j< array.length-1;j++){
if(array[j] > array[j+1]){
int temp =array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
} --------冒泡排序算法部分
2)直接选择排序:
public void sort(int[] array){
for (int i = 1;i < array.length;i++){
int index = 0;
for(int j = 1;j< array.length-i;j++){
if(array[j] > array[index]){
index=j;
}
}
int temp =array[array.length-i];
array[array.length -i]=array[index];
array[index]=temp;
}
3)反转排序:就是逆序排序:代码如下
public void sort(int[] array){
int len = array.length;
int temp;
for (int i=0;i<len/2;i++){
temp=array[i];
array[i]=array[len-1-i];
array[len-1-i]=temp;
}