我想知道 JVM 是否能够将流提升到循环之外,例如在我写的这个交叉检查中:
for (SomeObject someObject:someObjects) {
if (someList.stream().map(SomeObject::getValue).collect(Collectors.toList())
.contains(someObject.getValue())) {
//do some error stuff
}
}
我是否有必要像这样重构它:
final List<Value> values = someList.stream().map(SomeObject::getValue).collect(Collectors.toList());
for (SomeObject someObject:someObjects) {
if (values.contains(someObject.getValue()) {
//do some error stuff
}
}
这样的代码看起来可能更好看,但我只是想知道它是否会有很大的性能差异。
慕雪6442864
忽然笑
相关分类