数组
,若数组未进行赋值则默认数组内元素是0
一维数组
1、声明
//int a[]表示int型数组引用,使用new关键字进行内存分配,然后等于号则表示将引用指向new分配的地址
int a1[] = new int[5];//声明即分配内存
int a2[];a2=new int[5];//先声明再分配内存
2、初始化
//未初始化时,默认数组内元素是0
int a3[]={1,2,3,4};
int a4[]=new int[]{1,2,3};
二维数组
1、声明
int b1[][]=new int[3][4];
int b2[][]=new int[3][];//每一行的列数可以不相同
b2[0]=new int[1];
b2[1]=new int[2];
b2[2]=new int[3];
2、初始化
int b3[][]={{1,2,3},{1,2,3}};
int b4[][]=new int[][]{{1,2,3},{1,2,3}};
数组对象常用方法
1、length:这不是一个方法,表示数组的大小
2、clone():返回一个新的同类型的同内容的数组的引用
3、equal(另一个数组):比较两个数组指向的地址是否相同(不是比较两个数组的内容是否一样)
数组(Arrays)常用方法:
1、排序
自定义排序方式有两种:关于接口的内容见:抽象类与接口
一种是对象的类实现Comparable接口;另一种是类本身不实现Comparable接口,而是另外写一个类来实现Comparator接口,这个类就是一个比较器,可用于比较两个对象的大小
Arrays.sort(数组a);//从小到大将数组a排序
Arrays.sort(数组a,比较接口);//按照比较接口对数组a进行排序
Arrays.sort(数组a,开始,结束(不包括));//将数组a从下标[开始,结束)从小到大排序
Arrays.sort(数组a,开始,结束(不包括),比较接口);//将数组a从下标[开始,结束)按照比较接口排序
Arrays.parallelSort();//排序方法和sort相同,适用于数据量较多(大于2^18)的情况
2、查找
Arrays.binarySearch(有序数组a,查找的值val)//返回val在数组a中的下标,若有多个val时,返回的下标随机
Arrays.binarySearch(数组a,开始,结束(不包括),查找的值val)//返回val在数组a中[开始,结束)的下标
Arrays.binarySearch(自定义对象的数组,查找的对象,比较接口)
Arrays.binarySearch(自定义对象的数组,开始,结束(不包括),查找的对象val,比较接口)//返回val在数组中[开始,结束)的下标
3、比较
Arrays.equals(数组1,数组2);//比较两个数组的内容是否相同
Arrays.equals(数组1,开始1,结束1(不包括),数组2,开始2,结束2(不包括));//比较数组1从开始1到结束1和数组2从开始2到结束2内容是否相同
Arrays.compare(数组a,数组b)//按下标从小到大依次比较大小,若a>b,返回1;若a==b,返回0;若a<b,返回-1
Arrays.compare(数组a,开始1,结束1(不包括),数组b,开始2,结束2(不包括));//在范围内进行比较
4、复制
Arrays.copyOf(被复制的数组,复制的长度(从下标0开始复制));//返回一个数组的引用
Arrays.copyOfRange(被复制的数组,开始下标,结束下标(不包括结束的下标)) //返回一个数组的引用
5、填充
Arrays.fill(数组a,值val);//将数组a的内容全部变为val
Arrays.fill(数组a,开始下标,结束下标(不包括),值val);//将数组a的从开始到结束的内容变为val
6、转换
Arrays.toString(数组a)//将数组a用字符串表示,例:"[2,2,3]"