Java對map進行排序并生成序號

最近做的項目有這樣一個需求:要求對map中的值進行排序并生成序號。如果值相等則序號不變;如果不相等序號為該數(shù)數(shù)值在所有元素中的索引躬窜。如下表所示:

Key(String) Value(Float) Idx
23 12.4 1
10 3.2 2
11 2.2 3
9 2.2 3
1 1.9 5
6 0.5 6

public static Integer getSort(Map<String, Float> hashMap, String string) {
        // 轉(zhuǎn)換
        ArrayList<Entry<String, Float>> arrayList = new ArrayList<Map.Entry<String, Float>>(
                hashMap.entrySet());
        // 排序
        Collections.sort(arrayList, new Comparator<Map.Entry<String, Float>>() {
            public int compare(Map.Entry<String, Float> map1,
                    Map.Entry<String, Float> map2) {
                return ((map2.getValue() - map1.getValue() == 0) ? 0 : (map2
                        .getValue()
                        - map1.getValue() > 0) ? 1 : -1);
            }
        });
        Map<String, Integer> idxex = new HashMap<String, Integer>();
        // 輸出
        int size = 1;
        for (int i = 0; i < arrayList.size(); i++) {
            Entry<String, Float> entry = arrayList.get(i);
            if (i > 0) {
                float curr = arrayList.get(i).getValue();
                float last = arrayList.get(i - 1).getValue();
                if (curr != last) {
                    size = i;
                    idxex.put(entry.getKey(), (i + 1));
                    size++;
                } else {
                    idxex.put(entry.getKey(), size);
                }
            } else {
                idxex.put(entry.getKey(), size);
            }
        }

        for (Map.Entry<String, Integer> entry : idxex.entrySet()) {
            String key = entry.getKey();
            if (string.equals(key)) {
                return entry.getValue();
            }
        }
        return 0;
    }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市炕置,隨后出現(xiàn)的幾起案子荣挨,更是在濱河造成了極大的恐慌,老刑警劉巖朴摊,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件默垄,死亡現(xiàn)場離奇詭異,居然都是意外死亡甚纲,警方通過查閱死者的電腦和手機厕倍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贩疙,“玉大人讹弯,你說我怎么就攤上這事况既。” “怎么了组民?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵棒仍,是天一觀的道長。 經(jīng)常有香客問我臭胜,道長莫其,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任耸三,我火速辦了婚禮乱陡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仪壮。我一直安慰自己憨颠,他們只是感情好,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布积锅。 她就那樣靜靜地躺著爽彤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缚陷。 梳的紋絲不亂的頭發(fā)上适篙,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音箫爷,去河邊找鬼嚷节。 笑死,一個胖子當著我的面吹牛虎锚,可吹牛的內(nèi)容都是我干的丹喻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼翁都,長吁一口氣:“原來是場噩夢啊……” “哼碍论!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起柄慰,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鳍悠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后坐搔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體藏研,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年概行,在試婚紗的時候發(fā)現(xiàn)自己被綠了蠢挡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖业踏,靈堂內(nèi)的尸體忽然破棺而出禽炬,到底是詐尸還是另有隱情,我是刑警寧澤勤家,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布腹尖,位于F島的核電站,受9級特大地震影響伐脖,放射性物質(zhì)發(fā)生泄漏热幔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一讼庇、第九天 我趴在偏房一處隱蔽的房頂上張望绎巨。 院中可真熱鬧,春花似錦蠕啄、人聲如沸场勤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至舶沛,卻和暖如春嘹承,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背如庭。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工叹卷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坪它。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓骤竹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親往毡。 傳聞我的和親對象是個殘疾皇子蒙揣,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)开瞭,斷路器懒震,智...
    卡卡羅2017閱讀 134,699評論 18 139
  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,004評論 6 13
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法嗤详,內(nèi)部類的語法个扰,繼承相關的語法,異常的語法葱色,線程的語...
    子非魚_t_閱讀 31,662評論 18 399
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,238評論 0 4
  • 從三月份找實習到現(xiàn)在递宅,面了一些公司,掛了不少,但最終還是拿到小米办龄、百度烘绽、阿里、京東土榴、新浪诀姚、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,274評論 11 349