我有一个 POJO 类产品List<Product> list = new ArrayList<>();list.add(new Product(1, "HP Laptop Speakers", 25000));list.add(new Product(30, "Acer Keyboard", 300));list.add(new Product(2, "Dell Mouse", 150));现在我想拆分列表以获得输出 HP-Laptop-Speakers&&Acer-Keyboard&&Dell-Mouse.我只想要一个流中的班轮。到目前为止,我已经设法得到Optional<String> temp = list.stream(). map(x -> x.name). map(x -> x.split(" ")[0]). reduce((str1, str2) -> str1 + "&&" + str2);System.out.println(temp.get());输出: HP&&Acer&&Dell有人可以帮我吗。提前致谢。
3 回答
largeQ
TA贡献2039条经验 获得超7个赞
首先,split()不需要手术。虽然您可以拆分所有部分,然后像这样将它们连接在一起,但使用replaceorreplaceAll调用要简单得多。
其次,reduce 操作的效率不会很高,因为它会创建大量的中介Strings 和StringBuilders。相反,您应该使用String更高效的加入收集器:
String temp = list.stream()
.map(x -> x.name.replace(" ", "-"))
.collect(Collectors.joining("&&"));
添加回答
举报
0/150
提交
取消