为了账号安全,请及时绑定邮箱和手机立即绑定

已获取list,如歌给list[i]在添加值

已获取list,如歌给list[i]在添加值

慕哥9229398 2019-02-25 02:53:32
已获取listA[{id=1, num=1, opname=西瓜},{id=2, num=2, opname=香蕉}, {id=3, num=3, opname=苹果}, {id=4, num=4, opname=橘子}]需要遍历list,同时算每行的概率,1/10=10%最终获取listB[{id=1, num=1, opname=西瓜,p=10%},{id=2, num=2, opname=香蕉,p=20%}, {id=3, num=3, opname=苹果,p=30%}, {id=4, num=4, opname=橘子,p=40%}]如何把listA变成listB,listB最好不要是new ArrayList出来的 listA是从数据库中获取,现在需要对这个listA做些处理,增加1个概率,每种水果个数占总数的百分比
查看完整描述

2 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

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=西瓜}]

查看完整回答
反对 回复 2019-03-01
?
哔哔one

TA贡献1854条经验 获得超8个赞

直接 listA[i].p = xxx
循环操作完 log(listA)
不知道你是不是要的这个结果

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 405 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信