【发布时间】:2020-11-07 20:19:34
【问题描述】:
我正在尝试熟悉流和 lambda,并且有兴趣了解我们如何根据 lambda 和流编写类似以下内容的内容。虽然这是笛卡尔积,并且可能有更简单的方法来做到这一点,但我更喜欢使用与 map、filter、collect 等流一起引入的“嵌套”操作的答案。
List<String> names = Arrays.asList("Superman", "Batman", "Wonder Woman");
List<String> likes = Arrays.asList("good1", "good2", "good3");
List<String> dislikes = Arrays.asList("bad1", "bad2", "bad3");
List<String> statements = new ArrayList<>();
for (String r : names) {
for (String s : likes) {
for (String t : dislikes) {
statements.add(r + " likes " + s + " and dislikes " + t);
}
}
}
【问题讨论】:
-
Concat
r + " likes " + s + " and dislikes " + t每次都非常昂贵,如果您考虑效率,您可以通过这种方式在外循环中预先连接一些像r + " likes "的部分
标签: java lambda functional-programming java-stream