Java 可变参数、Collections工具类
一. 可变参数
1. 可变参数:就是一种特殊形参,定义方法、构造器的形参列表里,格式:数据类型...参数名称
2. 特点:可以不传数据;可以穿一个或多个数据;也可以传一个数组
3. 好处:常常用来灵活的接受数据
4. 一个形参类表中,只能有一个形参列表;可变参数必须放在形参列表的最后面
public static void main(String[] args) {
//可变参数
show();//不传
show(10);//传一个数据
show(10, 30, 60);//传多个数据
show(new int[]{10, 50, 90});//传一个数组
}
// 1. 一个形参类表中,只能有一个形参列表
// 2. 可变参数必须放在形参列表的最后面
public static void show(int ...nums){
System.out.println(Arrays.toString(nums));
}
二. Collections工具类
1. Collections是一个操作集合的工具类
2. Collections常用的静态方法
方法名称 | |
public static <T> boolean addAll(Collection<T super T> c, T...elements) | 给集合批量添加元素 |
public statilc void shuffle(List<?> list) | 打乱list集合中的元素顺序 |
public static <T> void sort(List<T> list) | 对list集合中的元素进行升序排序(可以直接对自定义类型的List集合进行排序,但自定义类型必须实现Comparable接口,指定规则 ) |
public ststic <T> void sort(List<T> list, Comparator<? super T> c) | 对list集合中的元素,按照比较器中指定的规则进行排序 |
public static void main(String[] args) {
//Collections
//1. public static <T> boolean addAll(Collection<T super T> c, T... elements) 给集合批量添加元素
List<String> list = new ArrayList<String>();
Collections.addAll(list, "卡莎", "泰坦", "霞", "洛");
System.out.println(list);//[卡莎, 泰坦, 霞, 洛]
//2. public statilc void shuffle(List<?> list) 打乱list集合中的元素顺序
Collections.shuffle(list);//
System.out.println(list);//[泰坦, 卡莎, 洛, 霞]
//3. public static <T> void sort(List<T> list) 对list集合中的元素进行升序排序
Collections.sort(list);
System.out.println(list);//[卡莎, 泰坦, 洛, 霞]
//4. public ststic <T> void sort(List<T> list, Comparator<? super T> c) 对list集合中的元素,按照比较器中指定的规则进行排序
Student student = new Student("卡莎", 18, 99);
Student student1 = new Student("泰坦", 19, 93);
Student student2 = new Student("伊泽", 16, 98);
Student student3 = new Student("璐璐", 16, 98);
List<Student> list1 = new ArrayList<>();
Collections.addAll(list1, student, student1, student2, student3);
//1. Student让该类对象实现Comparable接口 重写compareTo方法
Collections.sort(list1);
System.out.println(list1);
//2. public ststic <T> void sort(List<T> list, Comparator<? super T> c) 对list集合中的元素,按照比较器中指定的规则进行排序
Collections.sort(list1, ( o1, o2)-> o1.getAge() - o2.getAge());
System.out.println(list1);
}