国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解Java sort()數(shù)組排序(升序和降序)

瀏覽:3日期:2022-08-18 08:36:05

我們?cè)趯W(xué)習(xí) Java 的過(guò)程中肯定會(huì)遇到對(duì)數(shù)組進(jìn)行升序或降序等排序問(wèn)題,本節(jié)主要介紹如何實(shí)現(xiàn) Java 數(shù)組的升序和降序。Java 語(yǔ)言使用 Arrays 類(lèi)提供的 sort() 方法來(lái)對(duì)數(shù)組進(jìn)行排序。

升序

使用 java.util.Arrays 類(lèi)中的 sort() 方法對(duì)數(shù)組進(jìn)行升序分為以下兩步:

導(dǎo)入 java.util.Arrays 包。 使用 Arrays.sort(數(shù)組名) 語(yǔ)法對(duì)數(shù)組進(jìn)行排序,排序規(guī)則是從小到大,即升序。

假設(shè)在數(shù)組 scores 中存放了 5 名學(xué)生的成績(jī),現(xiàn)在要實(shí)現(xiàn)從低到高排列的功能。在這里使用 Arrays.sort() 方法來(lái)實(shí)現(xiàn),具體代碼如下:

public static void main(String[] args) { // 定義含有5個(gè)元素的數(shù)組 double[] scores = new double[] { 78, 45, 85, 97, 87 }; System.out.println('排序前數(shù)組內(nèi)容如下:'); // 對(duì)scores數(shù)組進(jìn)行循環(huán)遍歷 for (int i = 0; i < scores.length; i++) { System.out.print(scores[i] + 't'); } System.out.println('n排序后的數(shù)組內(nèi)容如下:'); // 對(duì)數(shù)組進(jìn)行排序 Arrays.sort(scores); // 遍歷排序后的數(shù)組 for (int j = 0; j < scores.length; j++) { System.out.print(scores[j] + 't'); }}

如上述代碼所示,要對(duì)一個(gè)數(shù)組進(jìn)行升序排列,只需要調(diào)用 Arrays.sort() 方法即可。運(yùn)行后的輸出結(jié)果如下所示。

排序前數(shù)組內(nèi)容如下:78.0 45.0 85.0 97.0 87.0 排序后的數(shù)組內(nèi)容如下:45.0 78.0 85.0 87.0 97.0

降序

在 Java 語(yǔ)言中使用 sort 實(shí)現(xiàn)降序有兩種方法,簡(jiǎn)單了解即可。

1)利用 Collections.reverseOrder() 方法(Collections 是一個(gè)包裝類(lèi)。大家可以學(xué)習(xí)《Java Collections類(lèi)》一節(jié)詳細(xì)了解):

public static void main(String[] args) { Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 }; // 數(shù)組類(lèi)型為Integer Arrays.sort(a, Collections.reverseOrder()); for (int arr : a) { System.out.print(arr + ' '); }}

輸出結(jié)果如下:9 8 7 6 5 4 3 2 1 0

2)實(shí)現(xiàn) Comparator 接口的復(fù)寫(xiě) compare() 方法,代碼如下:

public class Test { public static void main(String[] args) { /* * 注意,要想改變默認(rèn)的排列順序,不能使用基本類(lèi)型(int,double,char)而要使用它們對(duì)應(yīng)的類(lèi) */ Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 }; // 定義一個(gè)自定義類(lèi)MyComparator的對(duì)象 Comparator cmp = new MyComparator(); Arrays.sort(a, cmp); for (int arr : a) { System.out.print(arr + ' '); } }}// 實(shí)現(xiàn)Comparator接口class MyComparator implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { /* * 如果o1小于o2,我們就返回正值,如果o1大于o2我們就返回負(fù)值, 這樣顛倒一下,就可以實(shí)現(xiàn)降序排序了,反之即可自定義升序排序了 */ return o2 - o1; }}

輸出結(jié)果如下所示。9 8 7 6 5 4 3 2 1 0

注意:使用以上兩種方法時(shí),數(shù)組必須是包裝類(lèi)型,否則會(huì)編譯不通過(guò)。

在 Java 中實(shí)現(xiàn)數(shù)組排序的方式很多,除了利用以上的幾種方法外,還可以編寫(xiě)自定義方法來(lái)實(shí)現(xiàn)自己的排序算法,有興趣的讀者可以嘗試編寫(xiě)。

Java排序方法sort的使用詳解

對(duì)數(shù)組的排序:

//對(duì)數(shù)組排序public void arraySort(){ int[] arr = {1,4,6,333,8,2}; Arrays.sort(arr);//使用java.util.Arrays對(duì)象的sort方法 for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); }}

對(duì)集合的排序:

//對(duì)list升序排序 public void listSort1(){ List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(55); list.add(9); list.add(0); list.add(2); Collections.sort(list);//使用Collections的sort方法 for(int a :list){ System.out.println(a); } } //對(duì)list降序排序 public void listSort2(){ List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(55); list.add(9); list.add(0); list.add(2); Collections.sort(list, new Comparator<Integer>() { public int compare(Integer o1, Integer o2) {return o2 - o1; } });//使用Collections的sort方法,并且重寫(xiě)compare方法 for(int a :list){ System.out.println(a); } }

到此這篇關(guān)于詳解Java sort()數(shù)組排序(升序和降序)的文章就介紹到這了,更多相關(guān)Java sort()數(shù)組排序內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 巴塘县| 巴彦县| 佛山市| 景东| 高陵县| 霸州市| 金门县| 太康县| 宁化县| 洛浦县| 江孜县| 元朗区| 施甸县| 修水县| 乐安县| 彰化市| 临沂市| 大宁县| 郓城县| 邳州市| 安吉县| 钦州市| 双城市| 葵青区| 绥棱县| 淅川县| 郁南县| 拉萨市| 乌什县| 珠海市| 南华县| 凤阳县| 综艺| 九龙县| 离岛区| 蒙阴县| 揭阳市| 临西县| 岫岩| 莱西市| 罗田县|