数据结构_单列集合_java.util.Collections工具类、可变参数

本文介绍了Java中的可变参数,用于处理不确定数量但确定类型的参数,例如在求和方法中。同时讲解了Collections工具类的常用方法,如addAll、shuffle和sort。在使用sort方法时,如果对自定义类型排序,需要实现Comparable接口或提供Comparator。通过示例展示了如何实现这两个排序方式。
摘要由CSDN通过智能技术生成

可变参数作用

在形参部分中,如果形参的个数不确定,但可以确定形参的类型,那么可以使用可变参数
如:一个可以对参数求和的方法,但不要求是几个数相加,避免使用重载的方法。

格式:

public static int add(int...arr){
        int sum = 0;
        for (int i : arr) {
            sum += i;
        }
        return sum;
    }
//main方法中,几个实参都可以
System.out.println(add(233,2,3,3,2,3));
System.out.println(add(2,3));

arr实际是一个数组,在传入实参时会自动创建一个对应长度的数组,在方法中就可以直接对arr进行遍历使用。

可变参数的注意事项

  • 参数列表中只能有一个可变参数
  • 如果除了可变参数,还有其他参数,那么可变参数必须放在参数列表的最后

Collections工具类

Java.util.Collections对集合操作的一个类,常用方法:

  • public static boolean addAll(Collection<? super T> c, T… elements) :往集合c中添加若干个元素,不限制个数
  • public static void shuffle(List<?> list):将集合中的元素打乱
  • public static void sort(List<?> list) : 按照升序的排序方式对集合进行排序,注意只能传List集合
  • public static void sort(List<?> list, Compare) : 按照升序的排序方式对集合进行排序,注意只能传List集合
1、第一种sort方法

的使用需要注意:
  之所以能够对int、String等类型进行排序,是因为这些类型都实现了一个Comparable接口,重写了其中的compareTo方法,所以如果是对自定义类型进行排序,自定义类型应当也实现Comparable接口,并重写compareTo方法。

 @Override
    public int compareTo(Person o) {	
        return 0;	//重写默认直接返回0,代表前后者相等
    }
//应改成
@Override
    public int compareTo(Person o) {
        return this.age - o.age;	//对年龄排序
    }

this.age - o.age :代表升序排序

第二种sort方法

public static void sort(List<?> list, Comparator)
相当于找一个第三方的裁判来对list中每两个元素排序
Comparator是一个接口,可以直接new一个匿名内部类
但同样要在内部类中实现compare方法:

Collections.sort(list, new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {
                return o1.getAge() - o2.getAge();
            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值