zoukankan      html  css  js  c++  java
  • 对于基本数据类型数组使用lambda排序

    1.问题的产生:基本数据类型数组无法使用Comparator函数式接口,进行倒序排序

            int[] nums=new int[]{2,12,341,11,1};
            Arrays.sort(nums,(a,b)->b-a); //该语句会报错

    原因:sort(T[] a, Comparator<? super T> c)

       int[]不是T[](Integer[]将是),无法使用Comparator函数式接口。

    2.解决方法:

      (1)先升序后反转数组

    Arrays.sort(nums);
    for(int i=0;i<nums.length/2;i++){
        int temp=nums[i];
        nums[i]=nums[nums.length-1-i];
        nums[nums.length-1-i]=temp;    
    }

      (2)将nums转换为Integer数组,再调用该方法

            Integer[] newNums=Arrays.stream(nums).boxed().toArray(Integer[]::new);
            Arrays.sort(newNums,(a,b)->b-a);
  • 相关阅读:
    第三次冲刺
    第二次冲刺
    第一次冲刺
    Beta版本的发布
    第七次冲刺
    SpringMVC+Spring+mybatis 项目实践
    JSP显示新闻
    一个简单的静态邮箱登录界面
    Java Web 基础
    总结
  • 原文地址:https://www.cnblogs.com/shouyaya/p/13456009.html
Copyright © 2011-2022 走看看