可变参数:
- 可变参数用在形参中可以接收多个数据。
- 可变参数的格式:数据类型…参数名称
可变参数的作用
- 传输参数非常灵活,方便。可以不传输参数,可以传输1个或者多个,也可以传输一个数组
- 可变参数在方法内部本质上就是一个数组。
可变参数的注意事项:
- 一个形参列表中可变参数只能有一个
- 可变参数必须放在形参列表的最后面
代码演示如下:
public class MethodDemo { public static void main(String[] args) { sum();//1.不传参数 sum(10);//2.可以传输一个参数 sum(10,20,30);//3.可以传输多个参数 sum(new int[]{10,20,30,40,50});//3.可以传输一个数组 } public static void sum(int...nums){ //注意:可变参数在方法内部其实就是一个数组。nums System.out.println("元素个数" + nums.length); System.out.println("元素内容" + Arrays.toString(nums)); } }
Collections集合工具类
- java.utils.Collections:是集合工具类
- 作用:Collections并不属于集合,是用来操作集合的工具类。
Collections常用API
- 使用范围:只能对于List集合的排序。
代码演示如下:
public class CollectionsDemo01 { public static void main(String[] args) { List<String> names = new ArrayList<>(); Collections.addAll(names, "楚留香", "胡铁花","张无忌","陆小凤"); System.out.println(names); // [楚留香, 胡铁花, 张无忌, 陆小凤] //2.public static void shuffle(List<?> list):打乱集合顺序 Collections.shuffle(names); System.out.println(names); // 随机打乱顺序 //3.public static <T> void sort(List<T> list):将集合中元素按照默认规则排序(排值特性的元素) List<Integer> list = new ArrayList<>(); Collections.addAll(list,12,22,21,4,6,7); System.out.println(list); // [12, 22, 21, 4, 6, 7] Collections.sort(list); System.out.println(list); // 随机打乱顺序 } }
使用自带比较器对象,按照指定规则进行排序
代码如下:
public class CollectionsDemo02 { public static void main(String[] args) { List<Apple> apples = new ArrayList<>();//可以重复 apples.add(new Apple("红富士","红色",9.9,500)); apples.add(new Apple("青苹果","绿色",15.9,300)); apples.add(new Apple("花牛","深红色",29.9,400)); apples.add(new Apple("黄苹果","黄色",9.8,500)); //sort方法自带比较器对象 Collections.sort(apples, new Comparator<Apple>() { @Override public int compare(Apple o1, Apple o2) { return Double.compare(o1.getPrice(), o2.getPrice()); // 按照价格比较 } }); System.out.println(apples); } }
这里Apple类代码就不重复了,在上一篇文章有。