Как получить минимум потока значений, закоротив, если встречается минимальное допустимое значениеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как получить минимум потока значений, закоротив, если встречается минимальное допустимое значение

Сообщение Anonymous »

Следующий код находит минимальное значение из ограниченного количества элементов:

Код: Выделить всё

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;
}
}
Каждый элемент этого потока может иметь одно из пяти значений: 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 с пропуском итераций, если 1 найден.
Как можно написать приведенный выше код Java 7 в потоковом стиле Java 8?

Подробнее здесь: https://stackoverflow.com/questions/404 ... imum-legal
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»