作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在该 block 中转换为 Java 8 流语法?
List<Product> tmpList = new ArrayList<>();
tmpList.add(new Product("prod1", "cat2", "t1", 100.23, 50.23));
tmpList.add(new Product("prod2", "cat1", "t2", 50.23, 50.23));
tmpList.add(new Product("prod1", "cat1", "t3", 200.23, 100.23));
tmpList.add(new Product("prod3", "cat2", "t1", 150.23, 50.23));
tmpList.add(new Product("prod1", "cat2", "t1", 100.23, 10.23));
Map<String, List<Product>> proMap = tmpList.stream().collect(Collectors.groupingBy(Product::getName));
//start
List<Product> productList = new ArrayList<>(); //
for(String productName : proMap.keySet()) {
double totalCostIn = proMap.get(productName).stream().mapToDouble(Product::getCostIn).sum();
double totalCostOut = proMap.get(productName).stream().mapToDouble(Product::getCostOut).sum();
productList.add(new Product(productName,totalCostIn,totalCostOut));
}
// how to convert to java 8 stream grammer in this block ?
List<Product> productList = proMap.entrySet().stream()...
最佳答案
你可以这样做,
Collection<Product> productsByName = tmpList.stream()
.collect(Collectors.toMap(Product::getName,
Function.identity(),
(p1, p2) -> new Product(p1.getName(),
p1.getCostIn() + p2.getCostIn(), p1.getCostOut() + p2.getCostOut())))
.values();
关于java - 我想在这个 block 中转换为java 8流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54274386/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!