首页 / JAVA / 在java流中使用return语句
在java流中使用return语句
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在java流中使用return语句,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1921字,纯文字阅读大概需要3分钟。
内容图文
![在java流中使用return语句](/upload/InfoBanner/zyjiaocheng/764/9c1ddaf333b1489b9d07a5e4c701e398.jpg)
您有两个实现一些代码我在使用Java流修改字符串:
final List<String> strings = new ArrayList<>();
strings.add("abc");
strings.add("bca");
strings.add("xyz");
Method 1:
final List<String> modifiedStrings = strings.stream().map(a -> {
String abc;
abc = a.replace("a", "*");
return abc;
}).collect(Collectors.toList());
Method 2:
final List<String> modifiedStrings2 = strings.stream().map(a ->
a.replace("a", "*")).collect(Collectors.toList());
我想知道方法一和方法二之间是否存在任何性能差异.
解决方法:
不会.这将编译为基本相同的字节码.第二个版本只是一种更简洁的编写方式.
示例代码:
void foo(List<String> strings) {
strings.stream()
.map(
a -> {
String abc;
abc = a.replace("a", "*");
return abc;
})
.collect(Collectors.toList());
}
void bar(List<String> strings) {
strings.stream().map(a -> a.replace("a", "*")).collect(Collectors.toList());
}
对应的lambda字节码:
private static java.lang.String lambda$bar$1(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
0: aload_0
1: ldc #8 // String a
3: ldc #9 // String *
5: invokevirtual #10 // Method java/lang/String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
8: areturn
LineNumberTable:
line 18: 0
private static java.lang.String lambda$foo$0(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=1
0: aload_0
1: ldc #8 // String a
3: ldc #9 // String *
5: invokevirtual #10 // Method java/lang/String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
8: astore_1
9: aload_1
10: areturn
LineNumberTable:
line 11: 0
line 12: 9
所以,字节码并不完全相同 – 在foo案例中有一个额外的astore_1和aload_1;但这可能无关紧要,因为它可以被优化掉.
内容总结
以上是互联网集市为您收集整理的在java流中使用return语句全部内容,希望文章能够帮你解决在java流中使用return语句所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。