Java数组的基本操作方法整理
数组是具有相同数据类型的一组数据的集合,Java支持多为数组,一维数组的每个基本单元都是基本数据类型的数据,二维数组就是每个基本单元是一维数组的一维数组,以此类推,n维数组的每个基本单元都是n-1为数组的n-1维数组。下面以一维数组为例说明Java数组的用法。
1、数组声明
数组声明有如下两种形式(方括号的位置不同):
intarr[]; int[]arr2;
2、数组初始化
数组初始化也有两种形式,如下(使用new或不使用new):
intarr[]=newint[]{1,3,5,7,9};
int[]arr2={2,4,6,8,10};
3、遍历数组
遍历数组可用for/foreach,如下:
publicstaticvoidmain(String[]args){
intarr[]=newint[]{1,3,5,7,9};
int[]arr2={2,4,6,8,10};
for(inti=0;i<arr.length;++i){
System.out.print(arr[i]+"\t");//13579
}
for(intx:arr2){
System.out.print(x+"\t");//246810
}
}
4、Arrays.fill()填充数组
使用Arrays类的静态方法,需要import包java.util.Arrays,定义了许多重载方法。
voidfill(int[]a,intval)全部填充
voidfill(int[]a,intfromIndex,inttoIndex,intval)填充指定索引的元素
int[]arr3=newint[5];
for(intx:arr3){
System.out.print(x+"\t");//00000全部初始化为0
}
System.out.println();
Arrays.fill(arr3,10);
for(intx:arr3){
System.out.print(x+"\t");//1010101010全部填充为10
}
System.out.println();
Arrays.fill(arr3,1,3,8);
for(intx:arr3){
System.out.print(x+"\t");//10881010填充指定索引
}
System.out.println();
5、Arrays.sort()对数组排序
voidsort(int[]a)全部排序
voidsort(int[]a,intfromIndex,inttoIndex)排序指定索引的元素
int[]arr4={3,7,2,1,9};
Arrays.sort(arr4);
for(intx:arr4){
System.out.print(x+"\t");//12379
}
System.out.println();
int[]arr5={3,7,2,1,9};
Arrays.sort(arr5,1,3);
for(intx:arr5){
System.out.print(x+"\t");//32719
}
System.out.println();
6、Arrays.copyOf()复制数组
int[]copyOf(int[]original,intnewLength)复制数组,指定新数组长度
int[]copyOfRange(int[]original,intfrom,intto)复制数组,指定所复制的原数组的索引
int[]arr6={1,2,3,4,5};
int[]arr7=Arrays.copyOf(arr6,5);//12345
int[]arr8=Arrays.copyOfRange(arr6,1,3);//23
for(intx:arr7){
System.out.print(x+"\t");
}
System.out.println();
for(intx:arr8){
System.out.print(x+"\t");
}
System.out.println();
7、检查数组中是否包含某一个值
String[]stringArray={"a","b","c","d","e"};
booleanb=Arrays.asList(stringArray).contains("a");
System.out.println(b);
//true
先使用Arrays.asList()将Array转换成List<String>,这样就可以用动态链表的contains函数来判断元素是否包含在链表中。
8、连接两个数组
int[]intArray={1,2,3,4,5};
int[]intArray2={6,7,8,9,10};
//ApacheCommonsLanglibrary
int[]combinedIntArray=ArrayUtils.addAll(intArray,intArray2);
ArrayUtils是Apache提供的数组处理类库,其addAll方法可以很方便地将两个数组连接成一个数组。
9、数组翻转
int[]intArray={1,2,3,4,5};
ArrayUtils.reverse(intArray);
System.out.println(Arrays.toString(intArray));
//[5,4,3,2,1]
依然用到了万能的ArrayUtils。
10、从数组中移除一个元素
int[]intArray={1,2,3,4,5};
int[]removed=ArrayUtils.removeElement(intArray,3);//createanewarray
System.out.println(Arrays.toString(removed));