Java分类统计次数,取max

来源:互联网 发布:枪与玫瑰乐队知乎 编辑:程序博客网 时间:2024/04/27 22:32
    /** 最近1个月使用频率最高银行 **/    public String BC0041004(List<BankTransInfo> sources, String batchNo) {        List<BankTransInfo> computeList = BankCardAnalysisUtil.filterBankCardTransInfo(sources, batchNo, "1", FlagScope.month, null);        Func1<BankTransInfo, String> keyExpress = new Func1<BankTransInfo, String>() {            @Override            public String apply(BankTransInfo t) {                // TODO Auto-generated method stub                return t.bankName;            }        };        Func1<BankTransInfo, Tuple2<String, Integer>> valueExpress = new Func1<BankTransInfo, Tuple.Tuple2<String,Integer>>() {            @Override            public Tuple2<String, Integer> apply(BankTransInfo t) {                // TODO Auto-generated method stub                Tuple2<String, Integer> value = Tuple2.tuple(t.bankName, 0);                return value;            }        };        Action3<BankTransInfo, String, Map<String, Tuple2<String, Integer>>> aggregate = new Action3<BankTransInfo, String, Map<String,Tuple2<String,Integer>>>() {            @Override            public void excute(BankTransInfo item, String key,                    Map<String, Tuple2<String, Integer>> map) {                // TODO Auto-generated method stub                Tuple2<String,Integer> value = map.get(key);                value.set2(value._2()+1);                map.put(key, value);                        }        };        Map<String, Tuple2<String, Integer>> map =ListUtils.map(computeList, keyExpress, valueExpress, aggregate);        List<Tuple2<String, Integer>>  dtermList = new ArrayList<Tuple.Tuple2<String,Integer>>();        dtermList.addAll(map.values());        Comparator<Tuple2<String, Integer>> comparator = new Comparator<Tuple.Tuple2<String,Integer>>() {            @Override            public int compare(Tuple2<String, Integer> o1,                    Tuple2<String, Integer> o2) {                // TODO Auto-generated method stub                              return o1._2()-o2._2();            }        };        Tuple2<String, Integer> max = ListUtils.max(dtermList, comparator);        return max._1();    }
0 0