【发布时间】:2016-10-15 06:47:07
【问题描述】:
如果我想将一个列表添加到另一个列表中,我会调用target.adAll(source)。
但是如果我需要先处理列表中的每个值呢?
我可以做类似的事情
for(String s: source) {
target.add(s.toLowerCase());
}
或使用 java 8:
source.stream().map(x->x.toLowerCase()).forEachOrdered(target::add);
但无论哪种方式,我似乎都失去了addAll 的性能优势。执行此操作的最佳方式是什么?
【问题讨论】:
-
我猜 JIT 应该能够将第二段代码转换为第一段。顺便说一句,请参阅stackoverflow.com/questions/39495347/…。
-
没有比这更好的了。
标签: java collections java-8