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));