java代码如下:
List list = new ArrayList<>();
Goods goods=new Goods("番茄炒鸡蛋",1,5.0,5.0);
Goods goods2=new Goods("红烧肉",1,10,10));
Goods goods3=new Goods("水煮活鱼",1,12,12));
Goods goods4=new Goods("番茄炒鸡蛋",1,5.0,5.0);
list.add(goods);
list.add(goods2);
list.add(goods3);
list.add(goods4);
实体类依次是菜名,数量,单价,总价;现在想将list中菜名相同的数据进行合并,并且数量和总价进行叠加.
考虑运行效率高点,尽量不要双层循环,要怎么实现?
一个关于List去重并叠加的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 打杂的程序员 2019-11-22 17:27关注
List<Goods> table; Map<String,Goods> map = new LinkedHashMap(); for (Goods good : list) { String key = good.get菜名; table = map.get(key); if (table != null) { table.set数量(table.get数量+ good.get数量); table.set单价(good.get单价); table.set总价(table.get总价+good.get总价); map.put(key, table); } else { map.put(key, good); } } for(Goods entry : map.values()){ newList.add(entry); }
用map 可以不用双循环,最后的newList是你最后返回的新的list。 全部手打,忘采纳
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 MATLAB仿真三相桥式全控整流电路
- ¥15 EDA技术关于时序电路设计
- ¥15 百度文心一言流式返回sse失败
- ¥15 由于远程方已关闭传输流,身份验证失败
- ¥15 rt-detr,PCB,目标检测
- ¥15 有偿求指导实证代码。cfps清洗合并后,无论是构建平衡面板还是非平衡面板,都是只剩几百个样本量。求指导一下哪里出问题了,不要潦草回复
- ¥15 mutlinichenet
- ¥50 Qt5.14.2怎样使用qlistwidget存储指针类数据并更新?
- ¥15 STM32多路复用器ADC采样
- ¥20 Linux(ubuntu)操作相关问题