您的位置:首页 > 产品设计 > UI/UE

Java Map Key-Value

2015-10-15 14:46 441 查看
/** 充值电话的电话号码、次数、金额(txt) **/
public String AP0050011(List<TransInfoCsv> sources, String batchNo) {
List<TransInfoCsv> computeList = AlipayAnalysisUtil.filterTransInfoCsv(sources, batchNo, null, null, ClazzTag.chargePhoneCall);
Func.Func1<TransInfoCsv, String> keyExpress = new Func1<TransInfoCsv, String>() {
public String apply(TransInfoCsv t) {
String phoneNum = getPhoneNO(t.consumeTitle);
return phoneNum;
}
};

Func.Func1<TransInfoCsv, Tuple3<String, Integer, Float>> valueExpress = new Func1<TransInfoCsv, Tuple.Tuple3<String,Integer,Float>>() {

public Tuple3<String, Integer, Float> apply(TransInfoCsv t){
String phoneNum = getPhoneNO(t.consumeTitle);
Tuple3<String,Integer,Float> item = Tuple.tuple(phoneNum, 0, 0.0f);
return item;
}
};

Action.Action3<TransInfoCsv, String, Map<String,Tuple3<String, Integer, Float>>> aggregate = new Action3<TransInfoCsv, String, Map<String,Tuple3<String,Integer,Float>>>() {

public void excute(TransInfoCsv item, String key,
Map<String, Tuple3<String, Integer, Float>> map) {
Tuple3<String, Integer, Float> value = map.get(key);
value.set2(value._2()+1);
value.set3(value._3()+Float.parseFloat(item.amountPay));
map.put(key, value);

}
};

Map<String, Tuple3<String, Integer, Float>> map = ListUtils.map(computeList, keyExpress, valueExpress, aggregate);

StructDocument<Tuple3<String, String, String>,Tuple3<String, Integer, Float>> dc = new StructDocument<Tuple.Tuple3<String,String,String>, Tuple.Tuple3<String,Integer,Float>>();

Tuple3<String, String, String> header = Tuple.tuple("手机号", "充值次数", "充值金额");

dc.setHeader(header);
dc.addAll(map.values());

return dc.toString();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java map