经常在用,却经常想不起名字。认真总结一份,常用的数组相关方法~
本文基于Mars老师的Java4Android视频,以及网络上的总结。
数组的定义方法
首先看一维数组的定义方法:
数组的静态声明法
int arr [] = {5,2,7,9,0};
// [] 写在前后都行,风格统一即可
int[] arr = {5,2,7,9,0};
//可用foreach输出
for (int x: arr) {
System.out.println(x); // 2 4 6 8 10
}
数组的动态声明法
//和创建对象没有关系
//创建对象new后面是()
int[] arr= new int[10];
char[] arrChar = new char[10];
声明之后,默认值,int数组是0,char数组是空字符,boolean数组是false。
二维数组也是类似的。
二维数组,就是数组之中的元素,还是数组。
//静态声明法
int[][] arr = {{1,2,3},{4,5,6},{7,8}};
//动态声明法
int[][] arr1 = new int[3][5];
//输出时要用两层循环来取
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}
数组的类型
- 数组的类型不是数组中元素的类型,不要混淆。比如arr是整形数组类型,不是整形变量 。
- 只要保证数组中存放的元素类型是一致的就行。int,double,char,对象,数组,都可以存在数组里。
注意:数组一旦被声明,长度就不可改变了!!
数组的操作方法
Arrays类的静态方法很好用,需要import java.utils.Arrays
1、 Array.fill() 填充数组
// void fill(int[] a, int val)全部填充
// void fill(int[] a, int fromIndex, int toIndex, int val)填充指定索引的元素
Arrays.fill(arr3, 10);
Arrays.fill(arr3, 1, 3, 8);
2、Arrays.sort() 对数组排序
//void sort(int[] a)全部排序
//void sort(int[] a, int fromIndex, int toIndex)排序指定索引的元素
Arrays.sort(arr4);
Arrays.sort(arr5, 0, 5);
3、Arrays.copyOf() 复制数组
// int copyOf(int[] original, int newLength)复制数组,指定新数组长度
// int[] copyOfRange(int[] original, int from, int to)复制数组,指定所复制的原数组的索引
int[] arr6 = Arrays.copyOf(arr5, 10);
int[] arr7 = Arrays.copyOfRange(arr5, 3, 9);
4、检查数组中是否包含某一个值
// 先使用Arrays.asList()将Array转换成List<String>,
//再用动态链表的contains方法判断元素是否包含在链表中。
String stringArray [] = {"a","b","c","d"};
boolean b = Arrays.asList(stringArray).contains("c");
5、连接两个数组
int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
6、数组翻转
ArrayUtils.reverse(intArray);
7、从数组移除一个元素
int[] removed = ArrayUtils.removeElement(intArray, 3);
网友评论