使用Java8Stream API时,将多个map调用合并为一个有什么好处吗,或者它真的不会影响性能吗?
例如:
stream.map(SomeClass::operation1).map(SomeClass::operation2);
范瑟丝
stream.map(o -> o.operation1().operation2());
对于大多数业务逻辑操作,这里的性能开销可以忽略不计。管道中有两个额外的方法调用(实际应用程序中的JIT-compiler可能不会内联)。另外,您有更长的调用堆栈(一个帧),所以如果您在流操作中有异常,它的创建会稍微慢一点。如果您的流执行像简单数学这样的低级操作,这些事情可能很重要。然而,大多数实际问题的计算代价要大得多,因此相对性能下降不太可能明显。如果您实际执行了一个简单的数学运算,并且需要这样的性能,那么最好还是继续使用简单的for
循环。使用您发现的可读性更强的版本,不要执行过早的优化。
我有两个(或更多)
在这里,我有两个项目列表,我想要合并到一个列表中,并在保存到数据库之前删除重复项。但是我得到一个错误,“非静态方法不能从静态上下文引用”。虽然我知道该消息的含义,但我不知道如何在Java8流的上下文中解决它。拜托,救命。 下面是错误消息的快照
我一直在为我的服务器做一个非常简单的bukkit插件,只是为了个人使用。我做了一个叫播放器的命令,当某人有权限(broadcaster.players)时,它会显示服务器播放器的列表。我还想让它在游戏中显示玩家的游戏模式。但是我不知道如何把它们放在一起。 我的代码: 如果它说,我想在同一行上显示游戏模式。 当然,这从来没有工作过,我不知道该怎么办,有人能给我建议我能做什么吗,我的代码很混乱,但我是
可能重复: 解析错误:语法错误,意外'(',期望','或';'中 我得到以下错误: 分析错误:语法错误,意外“.”,期待“,”或“;”在第19行的xxx中 在这一行:
生成字符串:
如何检查一个字符串是否在另一个字符串中,但匹配项需要在前面,而不是中间或最后。例如,a="