The*_*tor 13 java collections lambda list java-8
使用Java 8的新功能,转换a的所有值的最简洁方法是List<String>
什么?
鉴于这种:
List<String> words = Arrays.asList("Apple", "Ananas", "Mango", "Banana", "Beer");
Run Code Online (Sandbox Code Playgroud)
我目前正在这样做:
for (int n = 0; n < words.size(); n++) {
words.set(n, words.get(n).toUpperCase());
}
Run Code Online (Sandbox Code Playgroud)
Java 8中的新Lambdas,Collections和Streams API如何帮助:
就地转换值(不创建新列表)
将值转换为新的结果列表.
The*_*tor 47
这就是我想出的:
给出清单:
List<String> keywords = Arrays.asList("Apple", "Ananas", "Mango", "Banana", "Beer");
Run Code Online (Sandbox Code Playgroud)
也许我错过了它,似乎没有一个'apply'或'compute'方法,它将一个lambda用于List.所以,这与旧Java相同.我无法想到使用Java 8更简洁或更有效的方法.
for (int n = 0; n < keywords.size(); n++) {
keywords.set(n, keywords.get(n).toUpperCase());
}
Run Code Online (Sandbox Code Playgroud)
虽然有这种方式并不比for(..)循环更好:
IntStream.range(0,keywords.size())
.forEach( i -> keywords.set(i, keywords.get(i).toUpperCase()));
Run Code Online (Sandbox Code Playgroud)
List<String> changed = keywords.stream()
.map( it -> it.toUpperCase() ).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
41231 次 |
最近记录: |