對於基本數據類型數組使用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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM