一、可变参数
1、概述
- 可变参数用在形参中可以接收多个数据
- 可变参数的格式: 数据类型...参数名称
2、可变参数的作用
- 传输参数非常灵活,方便。可以不传输参数,可以传输1个或者多个,也可以传输一个数组。
- 可变参数子啊方法内部本质上就是一个数组。
示例代码:
public static void main(String[] args) {
sum();//1、不传参数
sum(10);//2、可以传输一个参数
sum(10,20,30);//3、可与传输多个参数
sum(new int[]{10, 20, 30, 40, 50});//可以传输一个数组
}
public static void sum(int...nums){
System.out.println("元素个数" + nums.length);
System.out.println("元素内容" + Arrays.toString(nums));
}
结果如下:
3、注意事项
- 一个形参列表中可变参数只能有一个
- 可变参数必须放在形参列表的最后面
二、Collections
1、Collections集合工具类
- java.utils.Collections:是集合工具类
- 作用:Collections并购不属于集合,是用来操作集合的工具类。
2、Collections常用的API
public static <T> boolean addAll(Collection<? super T> c, T... elements)
给集合对象批量添加元素!
List<String> names = new ArrayList<>();
// names.add("a");
// names.add("b");
// names.add("c");
// names.add("d");
Collections.addAll(names,"a","b","c","d");
System.out.println(names);//[a, b, c, d]
public static void shuffle(List<?> list)
:打乱集合顺序。
Collections.shuffle(names);
System.out.println(names);//[b, d, a, c]
public static <T> void sort(List<T> list)
:将集合中元素按照默认规则排序。
List<Integer> list = new ArrayList<>();
Collections.addAll(list,12,3,43,23);
System.out.println(list);
Collections.sort(list);
System.out.println(list);
public static <T> void sort(List<T> list,Comparator<? super T> c)
:将集合中元素按照指定规则排序。
方式一:
@Override
public int compareTo(Student o) {
//按照年龄进行比较
return this.age - o.age;
}
方式二:
Collections.sort(students, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o1.getAge() - o2.getAge();
}
});
或者:
Collections.sort(students, (o1, o2) -> o1.getAge() - o2.getAge());