精品欧美一区二区三区在线观看 _久久久久国色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)

亚洲激情成人网| 亚洲一区在线免费观看| 国产精品久久999| 欧美一区二区三区观看| 欧一区二区三区| 亚洲成av人**亚洲成av**| 日本一区二区在线视频观看| a天堂视频在线| 午夜在线播放视频欧美| 精品国偷自产在线| 污片免费在线观看| 91亚洲精品在看在线观看高清| 亚洲国产你懂的| 日韩在线国产| 色偷偷在线观看| 九一九一国产精品| 91精品国产91久久| 黄色片子在线观看| 九一精品国产| 精品人伦一区二区色婷婷| 手机在线免费观看毛片| av日韩中文| 自拍视频在线观看一区二区| 日本高清久久一区二区三区| 亚洲女人18毛片水真多| 美国毛片一区二区三区| 欧美专区在线观看| 日本少妇毛茸茸高潮| 一本一本久久a久久综合精品| 亚洲欧洲午夜一线一品| 久久精品女人的天堂av| 自拍偷拍福利视频| 一区二区三区四区五区精品视频| 久久精品国产亚洲7777| 国产高潮呻吟久久| 久久人人爽人人爽人人片av不| 欧美剧情片在线观看| 亚洲中文字幕无码不卡电影| 国内高清免费在线视频| 一区在线播放视频| 日韩av电影免费观看| 天天操天天干天天舔| 国产精品亚洲视频| 91丝袜美腿美女视频网站| 日本熟妇一区二区三区| 亚洲欧美日韩国产一区| 高清在线视频日韩欧美| 强行糟蹋人妻hd中文| 呦呦视频在线观看| 日韩黄色影院| 中文字幕中文字幕在线一区| 婷婷久久五月天| 黄色大片在线看| 久久免费国产精品| 欧美日韩在线一二三| 欧美婷婷久久五月精品三区| 92国产精品观看| 久久99国产精品| 亚洲 精品 综合 精品 自拍| 99精品国产视频| 精品国产一二| 猫咪在线永久网站| 久久久久久久性| 欧美一区二区在线视频观看| 免费在线看v| 国产欧美日韩精品a在线观看| 欧美精品欧美精品| 黄上黄在线观看| 国产欧美视频一区二区三区| 亚洲一一在线| 在线观看三级视频| 亚洲第一福利一区| 欧美性久久久久| 日韩不卡在线| 91麻豆精品国产91久久久更新时间| 手机免费看av网站| 91麻豆精品激情在线观看最新| 欧美tickling挠脚心丨vk| 给我免费观看片在线电影的| 精品在线手机视频| 日韩最新免费不卡| 欧美成人精品欧美一| 亚洲美女黄色| 国产精品高清在线观看| 99热这里只有精品99| heyzo一本久久综合| 日韩福利二区| av文字幕在线观看| 天天影视网天天综合色在线播放 | 日韩精品免费| 久久人人爽人人爽人人片亚洲 | 91精品久久久久久久蜜月| 久久国产精品久久久久久| 国产无码精品在线播放| 日韩精品亚洲一区| dy888夜精品国产专区| 日本韩国一区| 亚洲欧美一区二区三区孕妇| 久久久一本二本三本| 国产精品99| 精品久久久久久久久久久院品网| 女人被狂躁c到高潮| 欧美3p视频| 91精品国产91久久久久久久久| 中文字幕永久在线| 丁香五精品蜜臀久久久久99网站| 日韩欧美亚洲日产国产| av中文字幕在线观看| 在线亚洲免费视频| 中文字幕第3页| 天天射天天综合网| 热re99久久精品国产66热| 国产成人三级一区二区在线观看一| 久久色.com| 免费视频爱爱太爽了| 国产亚洲人成a在线v网站| 亚洲国产欧美一区二区丝袜黑人| 精品伦精品一区二区三区视频密桃| 精品成人在线| 亚洲va久久久噜噜噜久久天堂| 蝌蚪视频在线播放| 亚洲福利视频三区| 天天色天天综合网| 国产欧美日韩一区二区三区四区| 欧美—级a级欧美特级ar全黄| 中文字幕在线播放不卡| 久久精品夜色噜噜亚洲aⅴ| 九九热只有这里有精品| 国产精品一区二区精品视频观看| 亚洲欧美在线磁力| 男人的天堂一区二区| 国产成人高清视频| 日本a级片在线观看| 国产香蕉久久| 中文字幕亚洲国产| 国产裸体美女永久免费无遮挡| 99久久精品免费观看| 超碰97在线看| 国产精品久久久久久久久久辛辛 | 国产黄大片在线观看画质优化| 欧美少妇一区二区| 蜜桃无码一区二区三区| 国产女优一区| 久久精品99久久| 黄在线观看免费网站ktv| 日韩免费观看高清完整版| 手机av在线看| 国模娜娜一区二区三区| 一区二区三视频| 日韩毛片免费看| www.久久色.com| 一级片aaaa| 最新成人av在线| 污污视频在线免费| 一区二区日韩欧美| 3d精品h动漫啪啪一区二区| 91香蕉在线观看| 精品奇米国产一区二区三区| 亚洲精品午夜久久久久久久| av亚洲精华国产精华精| 亚洲 高清 成人 动漫| 日韩精品社区| 国产精品成久久久久三级| 国产尤物视频在线| 欧美日韩精品一区二区在线播放| 99久久99久久精品免费看小说. | 综合五月婷婷| 99国产超薄肉色丝袜交足的后果| 亚洲综合影视| 日韩精品极品视频| wwwwww在线观看| 国产精品久久久久三级| www.午夜av| 亚洲一级电影| 蜜桃精品久久久久久久免费影院| 日本在线精品| 久久69精品久久久久久久电影好 | 日韩免费视频一区二区视频在线观看| av亚洲产国偷v产偷v自拍| 妺妺窝人体色www在线小说| 久久不见久久见中文字幕免费| 国产精品影片在线观看| 爆操欧美美女| 亚洲精品久久久一区二区三区 | 国产伦视频一区二区三区| 女海盗2成人h版中文字幕| 国产午夜一区二区| 国产肥老妇视频| 日韩欧美亚洲成人| 成人在线观看高清| 99国产精品国产精品久久| 日韩欧美国产片| 国内精品久久久久久久影视蜜臀| 欧美自拍资源在线| 99热这里只有精品首页| 国产精品成人观看视频国产奇米| gogogogo高清视频在线| 日韩av最新在线观看| 一级黄色片在线| 婷婷亚洲久悠悠色悠在线播放| 国产精品麻豆免费版现看视频| 国产成人综合在线观看| 精品久久久噜噜噜噜久久图片| 欧美 日韩 国产 一区| 欧美一区二区三区在线播放 | 欧美一区二区视频17c| 日韩精品视频在线看| 日本精品久久中文字幕佐佐木| 成人av福利| 中文字幕久久久| 刘亦菲毛片一区二区三区| 欧美日韩精品一区视频| 国产成人无码av| 亚洲曰韩产成在线| 少妇高潮惨叫久久久久| 91免费版在线看| 自拍视频第一页| 捆绑紧缚一区二区三区视频| 免费成人在线视频网站| 国产精品观看| 一级黄色免费在线观看| 成人3d动漫在线观看| 国产综合动作在线观看| 日韩一区二区三区色| 国产欧美一区二区三区视频| 一区二区三区短视频| 蜜月aⅴ免费一区二区三区| jzzjzzjzz亚洲成熟少妇| 日韩av在线影院| 免费观看毛片网站| 欧美mv和日韩mv的网站| 国产精品久久久久久免费免熟| 在线精品视频一区二区| 日韩手机在线视频| 精品毛片网大全| 国产在线观看成人| 一区二区三区影院| 性色av无码久久一区二区三区| 中文字幕乱码日本亚洲一区二区| 亚洲国产av一区| 久久伊99综合婷婷久久伊| 国产 中文 字幕 日韩 在线| 成人动漫在线一区| 久久久久亚洲av成人网人人软件| 国产精品亚洲一区二区三区在线| 亚洲制服在线观看| 国产一区二区不卡| 91视频福利网| 国产精品99久久久| 国产成人精品综合久久久久99| 国产伦精一区二区三区| www.久久com| 国产精品羞羞答答xxdd| 肉丝美足丝袜一区二区三区四| 清纯唯美亚洲色图| 欧洲精品中文字幕| 怡春院在线视频| 7777精品伊人久久久大香线蕉完整版 | 韩国日本美国免费毛片| 日本欧美一区二区三区乱码| 男人添女人下面免费视频| 久久精品72免费观看| 国产999免费视频| 从欧美一区二区三区| 成人性生活免费看| 国产日韩av一区| 四虎地址8848| 一区二区三区精密机械公司| 国产精品6666| 色老综合老女人久久久| 亚洲无码精品在线观看| 日韩欧美综合一区| 日韩中文字幕免费在线观看| 亚洲精品一区中文| √新版天堂资源在线资源| 久久久91精品国产| av影院在线免费观看| 国产激情久久久久| 美女国产精品久久久| 国产精品入口免费| 精品日产免费二区日产免费二区| 欧美 另类 交| 激情偷拍久久| 性欧美极品xxxx欧美一区二区| 精品一区二区三区免费观看| 久久久久99人妻一区二区三区| 91麻豆6部合集magnet| 亚洲精品卡一卡二| 欧美日韩午夜剧场| 中文字幕a级片| 亚洲国产精品va在线看黑人动漫| 黄视频在线观看免费| 欧美福利视频在线观看| 欧美18av| 1卡2卡3卡精品视频| 国产欧美日韩精品高清二区综合区| 色呦呦网站入口| 每日更新成人在线视频| 九一精品久久久| 久久这里都是精品| 黄色一级片在线| 欧美日韩综合色| 欧美 日韩 人妻 高清 中文| 中文字幕在线成人| 天堂中文在线播放| 亚洲综合色激情五月| 国产一区二区三区四区五区传媒| 欧美另类videos| 日韩成人av影视| 午夜不卡久久精品无码免费| 国产精品国产三级国产aⅴ中文| 热久久这里只有| 日韩精品卡一| 国产免费一区二区三区香蕉精| 人体久久天天| 日韩欧美猛交xxxxx无码| 免费观看一级特黄欧美大片| 免费无码一区二区三区| 一区二区在线观看av| 在线视频 中文字幕| 日韩成人av网| av伦理在线| aa成人免费视频| 色88久久久久高潮综合影院| 国产偷人视频免费| 99久久99久久精品国产片果冻| 极品颜值美女露脸啪啪| 欧美日韩aaaaa| 99se视频在线观看| 国产成人精品综合| 蜜臀91精品国产高清在线观看| 国产一线二线三线女| 国产精品 欧美精品| 国产91在线播放九色| 欧美日韩久久不卡| 男女啪啪在线观看| 国产免费一区二区三区在线能观看 | 91传媒免费看| 亚洲中无吗在线| 久久久久久综合网| 国产精品久久久久久亚洲伦| 久久久久久久久久一级| 亚洲品质视频自拍网| 午夜日韩成人影院| 日韩精品久久久毛片一区二区| 男人的天堂成人在线| 中文字幕av网址| 色综合 综合色| 国产一级网站视频在线| 日韩av高清不卡| 精品久久久亚洲| 日日躁夜夜躁aaaabbbb| 国产精品福利一区| 国产又粗又黄又爽的视频| 久久久www成人免费精品| 亚洲一区有码| 2022中文字幕| 成人网在线免费视频| 日本特黄特色aaa大片免费| 日韩国产欧美精品在线 | 精品福利樱桃av导航| 四虎在线免费观看| 日韩美女视频中文字幕| 成人情趣视频网站| 亚洲综合av在线播放| 洋洋av久久久久久久一区| 空姐吹箫视频大全| 国产精品五月天| 丝袜 亚洲 另类 欧美 重口| 日韩视频免费直播| a级片在线免费| 欧美精品中文字幕一区二区| 奇米影视一区二区三区| 最新黄色av网址| 精品欧美一区二区三区精品久久| 交100部在线观看| 日韩中文一区二区三区| 国产精品亚洲专一区二区三区| 亚洲精品77777| 国产亚洲精品成人av久久ww| 亚洲午夜剧场| 日本午夜激情视频| 国产精品理论在线观看| 亚洲第一页综合| 国产精品a久久久久久| 欧美成人亚洲| 国产aⅴ激情无码久久久无码| 欧美日本在线看| av今日在线| gogogo免费高清日本写真| 成人国产精品免费观看视频| 成人毛片一区二区三区| 欧美乱妇40p| 国产欧美日韩精品一区二区三区| 永久看看免费大片| 日韩欧美在线免费观看| 在线免费观看污| 日韩性感在线| 国产宾馆实践打屁股91| 中文字幕精品无|