可变参数
- 可变参数本质就是一个数组
- 作用:在形参中接收多个数据
- 格式:数据类型...参数名称
注意事项:
- 形参列表中可变参数只能有一个
- 可变参数必须在形参列表的最后面
public class ArgsDemo1 {
public static void main(String[] args) {
//常规方法计算n个数据的和
int[] arr = {1,2,3,4,5,6,7,8,9,10};
int sum = getSum(arr);
System.out.println(sum);
}
private static int getSum(int[] arr) {
int sum = 0;
for (int i : arr) {
sum = i + sum;
}
return sum;
}
}
public class ArgsDemo2 {
public static void main(String[] args) {
//可变参数求解
//方法形参的个数是可以发生变化的
//格式:属性类型...名字
System.out.println(getSum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
}
//可变参数底层实际就是一个数组
//只不过不需要我们自己创建了,Java会帮我们创建好
public static int getSum(int...args){
int sum = 0;
for (int i : args) {
sum = i + sum;
}
return sum;
}
}
集合工具类Collections
常用方法
方法名 | 说明 |
public static <T> boolean addAll(Collection<T> c,T...elements) | 批量添加元素 |
public static void shuffle(List<?> list) | 打乱List集合元素的顺序 |
public static <T> void sort(List<T> list) | 排序 |
public static <T> void sort(List<T> list,Comparator<T> c) | 根据指定的规则进行排序 |
public static <T> int binarySearch(List<T> list,T key) | 以二分查找法查找元素 |
public static <T> void copy(List<T> dest,List<T> src) | 拷贝集合中的元素 |
public static <T> int fill(List<T> list,T obj) | 使用指定的元素填充集合 |
public static <T> void max/min(Collection<T> coll) | 根据默认的自然排序获取最大/小值 |
public static <T> void swap(List<?> list,int i,int j) | 交换集合中指定位置的元素 |
public class CollectionsDemo1 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list,"a","bc","dscx","vca","dcav","ac");
System.out.println(list);
Collections.shuffle(list);
System.out.println(list);
Collections.sort(list);
System.out.println(list);
Collections.sort(list, (o1,o2)->{
int i = o1.length() - o2.length();
i = i == 0 ? o1.compareTo(o2) : i;
return i;
});
System.out.println(list);
}
}