数组拓展
1.main方法的参数
1.1通过设置configre传入
1.2命令行运行,通过java类名 参数1 参数2…
2.增强for循环
for(元素类型 变量名:容器){
循环体
}
//增强for循环
for(int i:arr){
i *= 2;
}
//普通for循环
for (int i = 0; i < arr.length; i++) {
int a = arr[i];
a *= 2;
System.out.println(arr[i]);
}
3.与普通for循环区别:
1.增强for循环结构简单
2.由于增强for循环无法获取索引,所以不能进行写操作(只能遍历)
3.当容器没有索引的时候,就只能使用增强for循环(迭代器实现)
4..可变参数
([参数1,参数2,数据类型…参数名)(int…arr)
传参的时候,直接传入n个对应数据的值
public static void sum(int a,int b,int...arr){
int sum = 0;
for (int i : arr) {
sum += i;
}
System.out.println(sum);
}
1).只能定义在参数列表的末尾(一个参数列表只能最多定义一个可变参数)
5.split方法
String a = "俊男.凤波.韬闻.德金";
//特殊符号\\转义
String[] arr = a.split("\\.");
System.out.println(Arrays.toString(arr));
Arrarys数组的工具类
Arrays:所有数组的超类
一.常用工具类
1.toString:返回数组的信息字符串
2.equals判断对象内容是否相等
3.判断多位数组使用使用deepToString和 deepEquals
4.fill以指定的值填充数组,可以指定范围
5.int binarySearch(type [ ] a,type key)/ int binarySearch(type [ ] a,int fromIndex,int toIndex,type key)二分查找
6.boolean equals(type [ ] a,type[ ] a2)判断数组是否相同
7.void sort(type[ ] a):对数组进行排序,可以指定范围
void parallelSort(xxx[ ] a):也是排序算法,但与上面相比可利用cpu并行提高效率
二.数组复制
1.copyOf:复制原数组,从零开始的指定长度,并返回新数组
2.copyOfRange(boolean[] original, int from, int to):从from开始复制到to
3.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
* src:源数组
* srcPos:开始从源数组复制的位置
* dest:目标数组
* destPos:目标数组的开始粘贴的位置
* length:要复制的长度
类型排序两种方式
一.Comparable
*在要排序的类型上实现Comparable,重写compareTo方法
*当前对象小于,等于,大于传入的对象,返回负数,0,正数
*Arrays.sort(Object[] obj);
二.Comparator
*生成匿名内部类对象,重写compare方法
*第一个对象,小于,等于,大于第二个对象,返回负数,0,正数
*Arrays.sort(Object[] obj,Comparator com);
*比较:
*为类型建立永久的自然排序规则,使用第一种
*临时的使用一种规则比较对象大小,使用第二种