已獲取listA[{id=1, num=1, opname=西瓜},{id=2, num=2, opname=香蕉}, {id=3, num=3, opname=蘋(píng)果}, {id=4, num=4, opname=橘子}]需要遍歷list,同時(shí)算每行的概率,1/10=10%最終獲取listB[{id=1, num=1, opname=西瓜,p=10%},{id=2, num=2, opname=香蕉,p=20%}, {id=3, num=3, opname=蘋(píng)果,p=30%}, {id=4, num=4, opname=橘子,p=40%}]如何把listA變成listB,listB最好不要是new ArrayList出來(lái)的
listA是從數(shù)據(jù)庫(kù)中獲取,現(xiàn)在需要對(duì)這個(gè)listA做些處理,增加1個(gè)概率,每種水果個(gè)數(shù)占總數(shù)的百分比
2 回答

郎朗坤
TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
public static void main(String[] args){
List<Map<String,String>> listA = new ArrayList<Map<String,String>>();
Map<String,String> map = new HashMap<String, String>();
map.put("id", "1");
map.put("num", "1");
map.put("opname", "西瓜");
listA.add(map);
System.out.println(listA.toString());
for(Map<String,String> pa : listA){
pa.put("p", BigDecimal.valueOf(Long.parseLong(pa.get("num"))).divide(BigDecimal.valueOf(10)).multiply(BigDecimal.valueOf(100))+"%");
}
System.out.println(listA.toString());
}
out:
[{id=1, num=1, opname=西瓜}]
[{id=1, num=1, p=10.0%, opname=西瓜}]

嗶嗶one
TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
直接 listA[i].p = xxx
循環(huán)操作完 log(listA)
不知道你是不是要的這個(gè)結(jié)果
添加回答
舉報(bào)
0/150
提交
取消