方法中可变参数
概念
● 就是一种特殊形参,定义在方法、构造器的形参列表里,格式是:数据类型 ... 参数名称;
可变参数的特点和好处
● 特点:可以不传数据给它;可以传一个或者同时传多个数据给它;也可以传一个数组给它。
● 好处:常常用来灵活的接收数据。
可变参数的注意事项:
● 可变参数在方法内部就是一个数组。
● 一个形参列表中可变参数只能有一个
● 可变参数必须放在形参列表的最后面
package com.itheima.demo4test;
import java.util.Arrays;
public class ParamDemo1 {
public static void main(String[] args) {
//目标:认识可变参数
sum(1); //可以不传参数
sum(10); //可以传一个参数
sum(10,20); //可以传多个参数
// sum(new int[]{10,20,30}); //可以传数组
//优势: 接受参数灵活,可以替代数组传参数
}
//注意:在形参中,可变参数只能有一个。并且可变参数必须放后面。原因:可变参数可以传多个数据,所以可能会吃掉其他的参数。
public static void sum(int age , int...nums){
//内部怎么拿数据
//可变参数对内实际上是一个数组,nums就是数组。可以用以下方式验证
System.out.println(nums.length);//length方法是数组的
System.out.println(Arrays.toString(nums));//toString方法是Arrays类的,说明传入的是数组
System.out.println("-------------------------------------");
}
}
Collections工具类
Collections提供的常用静态方法
package com.itheima.demo4test;
import java.util.*;
public class CollectionsDemo2 {
public static void main(String[] args) {
//目标:Collections工具类
List<String> list = new ArrayList<>();
//一开始的办法
/**
* list.add("张无忌");
* list.add("周芷若");
* list.add("赵敏");
* list.add("张强");
* list.add("张三丰");
* list.add("张翠山");
* list.add("张良");
*/
// 1、addAll方法:批量添加
Collections.addAll(list,"张无忌","周芷若","赵敏","张强","张三丰","张翠山","张良");
System.out.println(list);
// 2、shuffle方法:打乱集合顺序
Collections.shuffle(list);
System.out.println(list);
String s = "abcdefg";
// 3、sort方法:对集合进行排序 注意:可以直接对自定义类型的List集合排序,但自定义类型必须实现了Comparable接口,指定了比较规则才行
//对于 String 类型的列表,String 类已经实现了 Comparable 接口,因此可以直接调用 Collections.sort(list) 而无需提供额外的比较器
Collections.sort(list);
System.out.println(list);
// 4、sort方法:对集合进行排序,自定义比较器
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return 0;
}
});
System.out.println(list);
}
}
注意
1、 sort方法:对集合进行排序
注意:可以直接对自定义类型的List集合排序,但自定义类型必须实现了Comparable接口,指定了比较规则才行
对于 String 类型的列表,String 类已经实现了 Comparable 接口,因此可以直接调用Collections.sort(list) 而无需提供额外的比较器