例如有ARA代码用于从元件的限制量FINDE最小:java的8个流FINDE MIN/MAX限制
public int min(String s) {
return s.chars().map(this::mapToFactor).min().getAsInt();
}
private int mapToFactor(int ch) {
switch(ch) {
case 'A': return 1;
case 'C': return 2;
case 'G': return 3;
case 'T': return 4;
default: return Integer.MAX_VALUE;
}
}
完全以只存在5号:1,2,3,4,Integer.MAX_VALUE的。当我们面对1时,可以跳过未来的迭代并返回结果。
public int min(String s) {
int min = Integer.MAX_VALUE;
for (Character ch : s.toCharArray()) {
int current = mapToFactor(ch);
if(current == 1) {
//How I can implement this in Java 8 stream style?
return 1;
}
if (current < min) {
min = current;
}
return min;
}
}
于是就如果我们的字符串将警惕大,那么我们就可以显著下跌性能通过使用Java 8个流而不是Java 7风格的跳跃iterrations如果1中找到。
您能否介绍一下如何在java 8流风格中编写上述Java 7代码?
的可能的复制[上的流如何短路一个减少()操作?](http://stackoverflow.com/questions/32495069/how-to-short-circuit-a-reduce-流操作) – user140547
[通过谓词限制流]可能的重复(http://stackoverflow.com/questions/20746429/limit-a-stream-by-a-predicate) – the8472