精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java中的集合框架和數(shù)組的排序

開(kāi)發(fā) 后端
根據(jù)約定,在使用java編程的時(shí)候應(yīng)盡可能的使用現(xiàn)有的類庫(kù),當(dāng)然你也可以自己編寫一個(gè)排序的方法,或者框架,但是有幾個(gè)人能寫得比JDK里的還要好 呢?使用現(xiàn)有的類的另一個(gè)好處是代碼易于閱讀和維護(hù),這篇文章主要講的是如何使用現(xiàn)有的類庫(kù)對(duì)數(shù)組和各種Collection容器進(jìn)行排序。

首先要知道兩個(gè)類:java.util.Arrays和java.util.Collections(注意和Collection的區(qū)別)Collection是Java集合框架的頂層接口,而Collections是包含了許多靜態(tài)方法。我們使用Arrays對(duì)Java數(shù)組排序,使用 Collections對(duì)結(jié)合框架容器進(jìn)行排序,如ArraysList,LinkedList等。

例子中都要加上import java.util.*和其他外殼代碼,如類和靜態(tài)main方法,我會(huì)在第一個(gè)例子里寫出全部代碼,接下來(lái)會(huì)無(wú)一例外的省略。

對(duì)數(shù)組進(jìn)行排序

比如有一個(gè)整型數(shù)組:

int[] intArray = new int[] {4, 1, 3, -23};

我們?nèi)绾芜M(jìn)行排序呢?你這個(gè)時(shí)候是否在想快速排序的算法?看看下面的實(shí)現(xiàn)方法:

import java.util.*;
    public class Sort{
        public static void main(String[] args){
            int[] intArray = new int[] {4, 1, 3, -23};
            Arrays.sort(intArray);
        }
    }

這樣我們就用Arrays的靜態(tài)方法sort()對(duì)intArray進(jìn)行了升序排序,現(xiàn)在數(shù)組已經(jīng)變成了{(lán)-23,1,3,4}.

如果是字符數(shù)組:

String[] strArray = new String[] {"z", "a", "C"};

我們用:

Arrays.sort(strArray);

進(jìn)行排序后的結(jié)果是{C,a,z},sort()會(huì)根據(jù)元素的自然順序進(jìn)行升序排序。如果希望對(duì)大小寫不敏感的話可以這樣寫:

Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);

當(dāng)然我們也可以指定數(shù)組的某一段進(jìn)行排序比如我們要對(duì)數(shù)組下表0-2的部分(假設(shè)數(shù)組長(zhǎng)度大于3)進(jìn)行排序,其他部分保持不變,我們可以使用:

Arrays.sort(strArray,0,2);

這樣,我們只對(duì)前三個(gè)元素進(jìn)行了排序,而不會(huì)影響到后面的部分。

當(dāng)然有人會(huì)想,我怎樣進(jìn)行降序排序?在眾多的sort方法中有一個(gè)

sort(T[] a, Comparator c)

我們使用Comparator獲取一個(gè)反序的比較器即可,Comparator會(huì)在稍后講解,以前面的intArray[]為例:

Arrays.sort(intArray,Comparator.reverseOrder());

這樣,我們得到的結(jié)果就是{4,3,1,-23}。如果不想修改原有代碼我們也可以使用:

Collections.reverse(Arrays.asList(intArray));

得到該數(shù)組的反序。結(jié)果同樣為4,3,1,-23}。

現(xiàn)在的情況變了,我們的數(shù)組里不再是基本數(shù)據(jù)類型(primtive type)或者String類型的數(shù)組,而是對(duì)象數(shù)組。這個(gè)數(shù)組的自然順序是未知的,因此我們需要為該類實(shí)現(xiàn)Comparable接口,比如我們有一個(gè)Name類:

class Name implements Comparable{
        public String firstName,lastName;
        public Name(String firstName,String lastName){
            this.firstName=firstName;
            this.lastName=lastName;
        }
        public int compareTo(Name o) {          //實(shí)現(xiàn)接口
            int lastCmp=lastName.compareTo(o.lastName);
            return (lastCmp!=0?lastCmp:firstName.compareTo(o.firstName));
        }    
        public String toString(){                //便于輸出測(cè)試
            return firstName+" "+lastName;
        }
    }

這樣,當(dāng)我們對(duì)這個(gè)對(duì)象數(shù)組進(jìn)行排序時(shí),就會(huì)先比較lastName,然后比較firstName 然后得出兩個(gè)對(duì)象的先后順序,就像compareTo(Name o)里實(shí)現(xiàn)的那樣。不妨用程序試一試:

import java.util.*;
    public class NameSort {
        public static void main(String[] args) {
            Name nameArray[] = {
               new Name("John", "Lennon"),
               new Name("Karl", "Marx"),
               new Name("Groucho", "Marx"),
               new Name("Oscar", "Grouch")
           };
           Arrays.sort(nameArray);
           for(int i=0;i

結(jié)果正如我們所愿:

Oscar Grouch
    John Lennon
    Groucho Marx
    Karl Marx

對(duì)Java集合框架進(jìn)行排序

如果已經(jīng)理解了Arrays.sort()對(duì)Java數(shù)組排序的話,Java集合框架的使用也是大同小異。只是將Arrays替換成了Collections,注意Collections是一個(gè)類而Collection是一個(gè)接口,雖然只差一個(gè)"s"但是它們的含義卻完全不同。

假如有這樣一個(gè)鏈表:

LinkedList list=new LinkedList();
    list.add(4);
    list.add(34);
    list.add(22);
    list.add(2);

我們只需要使用:

Collections.sort(list);

就可以將ll里的元素按從小到大的順序進(jìn)行排序,結(jié)果就成了:

[2, 4, 22, 34]

如果LinkedList里面的元素是String,同樣會(huì)想基本數(shù)據(jù)類型一樣從小到大排序。

如果要實(shí)現(xiàn)反序排序也就是從達(dá)到小排序:

Collections.sort(list,Collectons.reverseOrder());

如果LinkedList里面的元素是自定義的對(duì)象,可以像上面的Name對(duì)象一樣實(shí)現(xiàn)Comparable接口,就可以讓Collection.sort()為您排序了。

如果你想按照自己的想法對(duì)一個(gè)對(duì)象進(jìn)行排序,你可以使用

sort(List list, Comparator c)

這個(gè)方法進(jìn)行排序,在給出例子之前,先要說(shuō)明一下Comparator的使用,Comparable接口的格式:

public interface Comparator {
        int compare(T o1, T o2);
    }

其實(shí)Comparator里的int compare(T o1,T o2)的寫法和Comparable里的compareTo()方法的寫法差不多。在上面的Name類中我們的比較是從LastName開(kāi)始的,這是西方 人的習(xí)慣,到了中國(guó),我們想從fristName開(kāi)始比較,又不想修改原來(lái)的代碼,這個(gè)時(shí)候,Comparator就可以派上用場(chǎng)了:

final Comparator FIRST_NAME_ORDER=new Comparator() {
        public int compare(Name n1, Name n2) {
             int firstCmp=n1.firstName.compareTo(n2.firstName);
             return (firstCmp!=0?firstCmp:n1.lastName.compareTo 
                     (n2.firstName));
        }
    };

這樣一個(gè)我們自定義的Comparator FIRST_NAME_ORDER就寫好了。

將上個(gè)例子里那個(gè)名字?jǐn)?shù)組轉(zhuǎn)化為L(zhǎng)ist:

List list=Arrays.asList(nameArray);
    Collections.sort(list,FIRST_NAME_ORDER);

這樣我們就成功的使用自己定義的比較器設(shè)定Java數(shù)組排序。

【編輯推薦】

  1. Red Hat CEO呼吁甲骨文繼續(xù)保持Java開(kāi)放
  2. 自學(xué)Javabean迅速成為Java高手
  3. Java通過(guò)JNI調(diào)用C語(yǔ)言的方法
  4. 高手Java核心技術(shù)學(xué)習(xí)筆記
  5. 成為Java高手需要注意的25個(gè)學(xué)習(xí)目標(biāo)
責(zé)任編輯:王觀 來(lái)源: 賽迪網(wǎng)
相關(guān)推薦

2012-04-26 10:52:52

Java數(shù)組集合

2012-05-02 10:47:51

JavaJava集合框架

2011-07-11 11:02:12

JAVA集合框架

2019-07-22 09:59:20

Java框架集合

2012-03-12 15:36:29

Java框架

2021-08-19 10:30:13

Java集合排序程序開(kāi)發(fā)

2024-12-10 07:10:00

2011-12-30 13:15:53

Java

2012-03-15 11:21:19

Java

2015-09-11 09:40:35

Java集合框架

2020-09-22 07:52:32

Java對(duì)象數(shù)組

2024-04-29 08:50:01

PostgreSQJSON數(shù)組

2020-10-15 12:30:37

Python編程語(yǔ)言

2023-10-09 07:57:14

JavaJCF

2009-06-29 16:50:27

Java集合框架

2021-03-11 07:27:22

Java 集合數(shù)據(jù)

2017-04-06 14:10:08

JavaScript數(shù)組排序

2009-08-13 10:35:05

Scala數(shù)組排序

2020-09-30 14:24:58

PythonSet對(duì)象

2010-07-20 15:36:58

Perl語(yǔ)法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美国产日韩a欧美在线观看 | 午夜精品久久久久久久四虎美女版| 色中色一区二区| 亚洲欧美一区二区原创| 99国产成人精品| 国产亚洲永久域名| 在线日韩日本国产亚洲| 国产老头和老头xxxx×| heyzo在线欧美播放| 久久精品夜夜夜夜久久| 亚洲曰本av电影| 国产一级做a爱片久久毛片a| 日韩一区二区三区免费播放| 欧美r级电影在线观看| 欧美少妇性生活视频| 26uuu亚洲电影在线观看| 久久影院午夜论| 成人亚洲综合色就1024| 婷婷激情五月网| 一本一本久久a久久综合精品| 91精品国产欧美一区二区| 国产内射老熟女aaaa| 国内精品在线视频| 成人污视频在线观看| 国产精品老牛影院在线观看| 久久97人妻无码一区二区三区| 亚洲男人都懂第一日本| 91精品国产高清一区二区三区 | 欧美一区二区女人| 白嫩少妇丰满一区二区| 七七成人影院| 中文字幕亚洲视频| 欧美日韩精品免费观看| 亚洲第一色视频| 久久99久久99小草精品免视看| 91精品国产成人| 伊人久久久久久久久久久久久久| 久久91精品| 亚洲成色777777在线观看影院| 国产欧美一区二| 国产精品高清乱码在线观看| 亚洲成人自拍网| 欧美大片免费播放| 欧美黄色激情| 国产欧美精品区一区二区三区| 精品国产乱码久久久久久蜜柚| 国产成人精品免费看视频| 免费在线欧美视频| 国产精品夫妻激情| 特级西西444www大精品视频免费看| 黄色精品网站| 欧美成人免费小视频| 色哟哟一一国产精品| 日本女优一区| 中文字幕亚洲天堂| 国产探花视频在线| 日韩欧美一区二区三区免费看| 亚洲欧美综合图区| 蜜桃无码一区二区三区| 国产乱码精品一区二区亚洲| 亚洲片在线观看| 波多野结衣 在线| 日韩欧美美女在线观看| 亚洲精品www久久久久久广东| 韩国av中国字幕| 盗摄系列偷拍视频精品tp| 精品久久国产老人久久综合| 美女黄色一级视频| 欧美日韩看看2015永久免费| 亚洲国产欧美一区| 粉嫩av懂色av蜜臀av分享| 日日天天久久| 国产午夜精品视频免费不卡69堂| 国产又粗又猛又爽又黄av| 欧美色图在线播放| 北条麻妃99精品青青久久| 91视频青青草| 国产一区久久| 2025国产精品视频| 无码无套少妇毛多18pxxxx| 奇米色777欧美一区二区| 国产精品一香蕉国产线看观看 | 日本午夜精品视频在线观看| 国产伦精品一区二区三区精品视频| 中文字幕日韩经典| 国产一区二区三区免费看| 91在线精品观看| 欧美熟妇乱码在线一区 | 黄大色黄女片18免费| 国产精品久久观看| 欧美激情视频网| chinese国产精品| 久久精品国产一区二区三区免费看 | 欧美一区二区三区婷婷月色| 催眠调教后宫乱淫校园| 嫩草影视亚洲| 日韩中文字幕精品| 国产在线视频99| 爽爽淫人综合网网站| 成人午夜激情网| 后入内射欧美99二区视频| 久久亚洲一级片| 一区二区三区在线视频111| 神马午夜伦理不卡 | 中文字幕日本人妻久久久免费| 国内成人精品2018免费看| 国产欧美一区二区视频| h网站在线免费观看| 亚洲综合男人的天堂| 久久精品网站视频| 国产精品日本一区二区不卡视频| 亚洲精品v欧美精品v日韩精品| 国产精品麻豆一区| 免费日韩av片| aa成人免费视频| 岛国大片在线观看| 亚洲午夜久久久久久久久久久| 中文字幕第21页| 国产精品qvod| 久久久精品一区二区三区| 国语对白永久免费| 国产成人啪免费观看软件| 日韩欧美一区二区三区四区五区| 国产在线xxx| 欧美日韩国产电影| 亚洲一级中文字幕| 精品成人国产| 97超碰资源| 一区二区高清不卡| 一本高清dvd不卡在线观看| 18禁一区二区三区| 91久久夜色精品国产按摩| 国产成人午夜视频网址| 老牛影视av牛牛影视av| 亚洲日韩欧美一区二区在线| 国产精品视频分类| 夜夜春成人影院| 韩国一区二区电影| 国产黄色大片网站| 18欧美乱大交hd1984| 日韩欧美黄色大片| 久草成人资源| 欧美一级高清免费| 亚洲日本在线播放| 午夜国产不卡在线观看视频| 日本女人性视频| 亚洲成av人电影| 国产男女猛烈无遮挡91| 风间由美一区| 欧美系列一区二区| www.av天天| 日韩福利电影在线观看| 日韩久久精品一区二区三区| 日本高清不卡一区二区三区视频| 国产偷国产偷亚洲清高网站| 四虎精品永久在线| 久久亚洲综合色| 欧美精品成人网| 精品久久久久久久| 国产精品欧美日韩| 日本免费中文字幕在线| 欧美色老头old∨ideo| 国产精品情侣呻吟对白视频| 日本不卡高清视频| 伊人久久大香线蕉综合75| 日韩亚洲国产免费| 久久在线精品视频| 亚洲国产日韩在线观看| 亚洲大片免费看| 国产呦小j女精品视频| 噜噜噜躁狠狠躁狠狠精品视频 | 日本午夜在线视频| 91国偷自产一区二区三区成为亚洲经典 | 亚洲第一会所001| 色哟哟入口国产精品| 91好色先生tv| 夜夜嗨av一区二区三区中文字幕| 肉丝美足丝袜一区二区三区四| 国内精品福利| 久久久久久久久久码影片| 日韩av福利| 色吧影院999| 精品国产va久久久久久久| 亚洲二区视频在线| 自拍偷拍视频亚洲| 国产在线视频精品一区| 欧美精品久久久久久久久久久| 伊人成综合网伊人222| 国产精品视频26uuu| 影音先锋男人资源在线| 日韩成人中文字幕| 影音先锋在线国产| 国产精品久久久久桃色tv| 91性高潮久久久久久久| 国产精品婷婷| 一区二区三区|亚洲午夜| 最新国产一区二区| 国产成人精品电影久久久| 含羞草www国产在线视频| 欧美精品一区在线观看| 亚洲中文无码av在线| 一区二区三区毛片| 88久久精品无码一区二区毛片| 激情综合网天天干| 黄色免费视频大全| 一区二区三区四区电影| 蜜桃av噜噜一区二区三区| www.欧美视频| 日韩美女在线看| 亚洲欧美成人影院| 在线播放国产一区中文字幕剧情欧美| 国产99对白在线播放| 色综合久久六月婷婷中文字幕| 波多野结衣亚洲一区二区| 久久久久久久久久久黄色| 色婷婷狠狠18禁久久| 蜜臀av性久久久久av蜜臀妖精| 国产免费黄色小视频| 91精品二区| 视频二区一区| 日韩大尺度在线观看| av一区二区三区四区电影| 国产乱子精品一区二区在线观看| 欧洲成人在线观看| 俺来也官网欧美久久精品| 久久久91精品| 自拍视频在线网| 亚洲免费电影一区| 熟妇高潮一区二区高潮| 欧美一区二区视频在线观看 | 久久综合给合久久狠狠色| 欧美日本三级| 91免费看片网站| 中文另类视频| 日本在线精品视频| 青青青免费在线视频| 久久久久久久久久久人体| 麻豆视频在线播放| 日韩专区在线观看| 国产特黄在线| 亚洲视频一区二区三区| 日本在线视频1区| 亚洲精品电影在线观看| 日批视频免费播放| 亚洲成av人影院在线观看| 性做久久久久久久久久| 欧美一区在线视频| 国产精品系列视频| 欧美电影一区二区三区| 一级黄色大片免费观看| 91久久久免费一区二区| 国产91精品看黄网站在线观看| 色婷婷av一区二区| 高潮毛片又色又爽免费| 色94色欧美sute亚洲线路二| 福利网址在线观看| 在线观看中文字幕不卡| 国产成人精品亚洲| 欧美日韩成人在线| 国产精品毛片久久久久久久av| 欧美一区二区三区日韩视频| 国产丝袜视频在线观看| 欧美成人在线直播| 可以免费看毛片的网站| 精品呦交小u女在线| 欧洲一区av| 中文字幕在线国产精品| 国产在线激情| 久久久久国产精品免费| segui88久久综合9999| 欧美一区二三区| 中文字幕日本一区二区| 国产欧美日韩免费看aⅴ视频| 亚洲欧美一级| 国产精品入口免费| 婷婷成人综合| 亚洲乱码一区二区三区三上悠亚| 亚洲精品99| 无码专区aaaaaa免费视频| 久久久水蜜桃av免费网站| 国产精品区在线| 国产伦精品一区二区三区免费迷 | 水蜜桃色314在线观看| 免费日韩av| 超碰在线免费av| 97se亚洲国产综合在线| 欧美黄色高清视频| 亚洲综合一区在线| 免费视频久久久| 91精品久久久久久蜜臀| 亚洲 欧美 自拍偷拍| 伊人久久五月天| 影音先锋在线视频| 国产成人亚洲精品| 一本色道69色精品综合久久| 日本不卡在线观看| 欧美成人69av| 午夜免费一区二区| 国产91对白在线观看九色| jizz中文字幕| 亚洲一级不卡视频| 亚洲手机在线观看| 精品国精品国产| 一区二区三区视频网站| 91精品国产91久久久久久久久 | 国产成人亚洲欧美| 青青草成人影院| 精品无码一区二区三区爱欲| 六月婷婷色综合| 一级做a爰片毛片| 亚洲男人的天堂一区二区| 亚洲国产av一区二区三区| 欧美一区二区三区视频免费播放 | 免费黄色福利视频| 国产久卡久卡久卡久卡视频精品| 免费看黄色的视频| 午夜精品一区在线观看| 97免费观看视频| 亚洲午夜色婷婷在线| 91视频欧美| 亚洲free性xxxx护士hd| 青青草原综合久久大伊人精品 | 黑人巨大精品一区二区在线| 日本韩国精品一区二区在线观看| 国产香蕉在线观看| 日韩在线观看免费av| 国产超碰精品| 国产一区二区免费电影| 亚洲影视一区二区三区| 三上悠亚在线一区| 中文字幕精品—区二区四季| 日本免费观看视| 日韩精品一区二区三区视频| 久cao在线| 国产日韩av在线| 不卡在线一区二区| 日韩av资源在线| 97国产一区二区| av大片免费在线观看| 精品成人一区二区| 精品精品导航| 风间由美久久久| 欧美激情四色| 午夜视频在线免费看| 一区二区三区四区精品在线视频| 亚洲资源在线播放| 久久精品视频免费播放| 日韩成人精品一区二区三区| 一区二区三区久久网| 久久精品国产亚洲aⅴ| 国产一区第一页| 欧美日韩高清影院| 国产原创在线观看| 亚洲va欧美va国产综合剧情| 天天影视综合| 日韩欧美中文在线视频| 亚洲精品高清在线| 亚洲毛片在线播放| 97香蕉超级碰碰久久免费软件| 欧美男人操女人视频| jizzjizzxxxx| 日本一区二区三级电影在线观看 | 91久久久久久久久| 亚洲成av人片乱码色午夜| 日批视频在线看| 亚洲国产你懂的| 日本五码在线| 国产精品夜间视频香蕉| 希岛爱理av一区二区三区| 风韵丰满熟妇啪啪区老熟熟女| 亚洲香肠在线观看| 欧美日本网站| 成人黄色免费片| 精品91在线| jizz中文字幕| 欧美一区中文字幕| 色综合桃花网| 特级西西444www大精品视频| 国产美女一区二区三区| 日韩精品视频播放| 亚洲欧美日韩一区二区三区在线| 欧美一区二区三区婷婷| 4444亚洲人成无码网在线观看| 99久久综合精品| 国产美女www爽爽爽| 欧美高清视频一区二区| 日韩高清电影免费| 在线观看日本一区二区| 一区二区三区成人在线视频| 性高潮久久久久久久久久| 国产精品自拍网| 亚洲午夜一区| 中文字幕 自拍| 欧美一级淫片007| 中文字幕色婷婷在线视频| 黑人巨大国产9丨视频| 2020国产精品久久精品美国| 国产精品呻吟久久| 欧美在线视频播放| 欧美精品大片|