可变参数与Collections

38 阅读1分钟

一、可变参数

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));
}

结果如下:

image.png

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());