Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
В JDK 8 лямбда-выражения будут реализованы уже на уровне компилятора и будут преобразовываться в байткод еще на этапе компиляции, поэтому теоретически производительность такого кода должна быть выше.Не очень понятно. А в остальных озвученных проектах они что, на этапе выполнения что ли транслируются и выполняются? O_o Очевидно же, что и в JDK8 лямбды и прочее — всего лишь сахар и развернутся на этапе компиляции в какие-нибудь обычные существующие конструкции, в этом же виде они и будут представлены байт-кодом. В случае лямбд, емнип, это будут просто статические методы.
А в остальных озвученных проектах они что, на этапе выполнения что ли транслируются и выполняются?
final int age = Lambda.min(forEach(select(db.getSales(), having(on(Sale.class).getCost(),
greaterThan(50000.00)))).getBuyer(), on(Person.class).getAge());
всё же не транслируется уж наверно на этапе выполнения, просто через рефлекшен работает.List
появился метод parallelSort
public void parallelSort(Comparator<? super E> c) default {
Collections.<E>sort(this,c);
}
final int age = db.getSales()
.filter((Sale sale)->sale.getCost() > 50000.00)
.<Integer>map((Sale sale)->sale.getBuyer().getAge())
.reduce(0, (x,y)-> x<y ? x : y);
final int age = db.getSales()
.parallel()
.filter((Sale sale)->sale.getCost() > 50000.00)
.<Integer>map((Sale sale)->sale.getBuyer().getAge())
.reduce(0, (x,y)-> x<y ? x : y);
final int age = db.getSales()
.filter((Sale sale)->sale.getCost() > 50000.00)
.parallel()
.<Integer>map((Sale sale)->sale.getBuyer().getAge())
.reduce(0, (x,y)-> x
final int age = Collections.min(db.getSales()
.filter((Sale sale)->sale.getCost() > 50000.00)
.<Integer>map((Sale sale)->sale.getBuyer().getAge())
.into(new ArrayList<Integer>()));
final int age = db.getSales()
.filter((Sale sale)->sale.getCost() > 50000.00)
.<Integer>map((Sale sale)->sale.getBuyer().getAge())
.reduce(0, (x,y)-> x<y ? x : y);
Java 8 Lambda vs LambdaJ vs Guava vs Iterative approach