学习笔记——Java数组
1.创建一维数组
最简单快捷的方法是:声明的同时为数组分配内存。如:
int month[]=new int[12]
也可以先声明再分配内存。如:
int month[]; //或int[] month; month=new int[12];
在初始化一维数组时,可采用两种方法。如:
int arr[]=new int[]{1,2,3,4,5}; 或者:int arr[]={1,2,3,4,5};
2.创建二维数组
创建二维数组的方法和一维数组一样有两种方法。如:
//先声明再分配 int arr[][]; arr=new int[2][4]; //直接分配 int arr[][]=new int[2][4];
注:分配内存时可以分配为每一维分配,常用于非规则数组。如:
int a[][]; a=new int[2][]; a[0]=new int[4]; a[1]=new int[5];
关于二维数组的操作,要学会使用foreach语句遍历二维数组。
int arr[][]={{2,3},{3,7},{6,5}}; for(int x[]:arr){ for(int e:x){ system.out.print(e+' '); } }
3.数组操作
3.1 填充元素
导入java.util.Arrays后,使用fill()方法。如:
Arrays.fill(arr,8);
Arrays.fill(arr,1,2,8); //在第一个到第二个(不包括)元素间填充8
3.2 排序
导入java.util.Arrays后,使用Arrays.sort()方法。如:
int arr[]={2,5,1,7,6}; Arrays.sort(arr);
3.3 复制数组
使用Arrays类的两个方法:
copyOf():复制数组到指定长度数组。如:
int arr[]={21,45,46}; int newarr[]=Arrays.copyOf(arr,5); //newarr数组为:21,45,46,0,0
copyOfRange():复制指定长度数组元素到新数组。如:
int arr[]={1,4,5,7,8,9}; int newarr[]=Arrays.copyOfRange(arr,0,3);
3.4 数组查询
Arrays类的binarySearch()方法提供了多种重载,可使用二分查找方式搜索。如:
binarySearch(Object[],key)、binarySearch(Object[],int fromIndex,int toIndex,int key).
3.5 数组排序算法
掌握冒泡排序、直接选择排序等基本排序算法的Java程序书写。下面以冒泡排序为例,自己用Java写一下该算法:
public class BubbleSort{ public void main(String[] args){ int arr[]={2,4,8,5,6,10,1}; //创建BubbleSort的实例,调用方法sort排序 BubbleSort sorter=new BubbleSort(); sorter.sort(arr); public void sort(int array[]){ for(int i=0;i<array.length();i++){ for(int j=array.length()-2;j>i;j--){ if(array[j+1]<array[j]){ int temp=array[j+1]; array[j+1]=array[j]; array[j]=temp; } } } }