集合进阶-可变参数、集合工具类Collections

可变参数

  1. 可变参数本质就是一个数组
  2. 作用:在形参中接收多个数据
  3. 格式:数据类型...参数名称

注意事项:

  • 形参列表中可变参数只能有一个
  • 可变参数必须在形参列表的最后面
public class ArgsDemo1 {
    public static void main(String[] args) {
        //常规方法计算n个数据的和
        int[] arr = {1,2,3,4,5,6,7,8,9,10};
        int sum = getSum(arr);
        System.out.println(sum);
    }

    private static int getSum(int[] arr) {
        int sum = 0;
        for (int i : arr) {
            sum = i + sum;
        }
        return sum;
    }
}
public class ArgsDemo2 {
    public static void main(String[] args) {
        //可变参数求解
        //方法形参的个数是可以发生变化的
        //格式:属性类型...名字
        System.out.println(getSum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
    }

    //可变参数底层实际就是一个数组
    //只不过不需要我们自己创建了,Java会帮我们创建好
    public static int getSum(int...args){
        int sum = 0;
        for (int i : args) {
            sum = i + sum;
        }
        return sum;
    }
}

集合工具类Collections

常用方法

方法名说明
public  static  <T>  boolean  addAll(Collection<T> c,T...elements)批量添加元素
public  static  void  shuffle(List<?>  list)打乱List集合元素的顺序
public  static  <T>  void  sort(List<T>  list)排序
public  static  <T>  void  sort(List<T>  list,Comparator<T>  c)根据指定的规则进行排序
public  static  <T>  int  binarySearch(List<T>  list,T  key)以二分查找法查找元素
public  static  <T>  void  copy(List<T>  dest,List<T>  src)拷贝集合中的元素
public  static  <T>  int  fill(List<T>  list,T  obj)使用指定的元素填充集合
public  static  <T>  void  max/min(Collection<T>  coll)根据默认的自然排序获取最大/小值
public  static  <T>  void  swap(List<?>  list,int  i,int  j)交换集合中指定位置的元素
public class CollectionsDemo1 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"a","bc","dscx","vca","dcav","ac");
        System.out.println(list);

        Collections.shuffle(list);
        System.out.println(list);

        Collections.sort(list);
        System.out.println(list);

        Collections.sort(list, (o1,o2)->{
                int i = o1.length() - o2.length();
                i = i == 0 ? o1.compareTo(o2) : i;
                return i;
        });
        System.out.println(list);

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值