针对复杂类型进行排序之map值排序(权重筛选)


/** 排序在权重筛选、词频统计中有重要作用*/

package com.tomrrow.util;

import .util.ArrayList;
import .util.Collections;
import .util.Comparator;
import .util.Iterator;
import .util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;

/**
* 把工作量交给器,工作量已死!
* @author xujy
*

*/

    public static void main(String[] args) {

        map.put(“中国”, new WordFilter(“ns”,”中国”, 20));
        map.put(“小日本”, new WordFilter(“ns”,”小日本”, 5));
        map.put(“美利坚”, new WordFilter(“ns”,”美利坚”, 3));
        map.put(“匈牙利”, new WordFilter(“ns”,”匈牙利”,8));
       
        System.out.print(“排序前:{begin->”);

            System.out.print(“[“+entry.getKey() + “->” + entry.getValue().count+”]->”);
        }
        System.out.println(“over}”);
       
        // 实例化一下泛型

       

       
        System.out.print(“排序后:{begin->”);

            System.out.print(“[“+entry.getKey() + “->” + entry.getValue().count+”]->”);
        }
        System.out.print(“over}”);
    }
   
    /**
     * 使用 Map按任意类型value排序
     * @param map
     * @return
     */

        if (map == null || map.isEmpty()) {
            return null;
        }
        /*
         一般情况下,我们用的最多的是HashMap,在Map 中插入、删除和定位元素,HashMap 是最好的选择。但如果您要按自然顺序或自定义顺序遍历键,
         那么TreeMap会更好。如果需要输出的顺序和输入的相同,那么用LinkedHashMap 可以实现,它还可以按读取顺序来排列.HashMap是一个最常用的Map,
         它根据键的hashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为NULL,允许多条记录的值为NULL。
         HashMap不支持线程同步,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致性。如果需要同步,可以用Collections的synchronizedMap
         搜索方法使HashMap具有同步的能力。Hashtable与HashMap类似,不同的是:它不允许记录的键或者值为空;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,
         因此也导致了Hashtable在写入时会比较慢。LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的。
         在遍历的时候会比HashMap慢TreeMap能够把它保存的记录根据键排序,默认是按升序排序,也可以指定排序的比较器。当用Iterator遍历TreeMap时,得到的记录是排过序的。
         */





        while (iter.hasNext()) {
            tmpEntry = iter.next();
            sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());
        }
        return sortedMap;
    }
}

/**
* 针对Map的比较器类
* @author xujy
*

*/

    @Override

        return o1.getValue().compareTo(o2.getValue());
    }
}

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《针对复杂类型进行排序之map值排序(权重筛选)
本文地址:https://www.zhiletu.com/archives-4206.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微