Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Java 8 Lambda Expressions

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Java 8 streams
Java 8 streams
Cargando en…3
×

Eche un vistazo a continuación

1 de 20 Anuncio

Java 8 Lambda Expressions

Descargar para leer sin conexión

Slides for a lightning talk on Java 8 lambda expressions I gave at the Near Infinity (www.nearinfinity.com) 2013 spring conference.

The associated sample code is on GitHub at https://github.com/sleberknight/java8-lambda-samples

Slides for a lightning talk on Java 8 lambda expressions I gave at the Near Infinity (www.nearinfinity.com) 2013 spring conference.

The associated sample code is on GitHub at https://github.com/sleberknight/java8-lambda-samples

Anuncio
Anuncio

Más Contenido Relacionado

Presentaciones para usted (20)

A los espectadores también les gustó (20)

Anuncio

Similares a Java 8 Lambda Expressions (20)

Anuncio

Más reciente (20)

Java 8 Lambda Expressions

  1. 1. Scott Leberknight Java 8 λ Expressions
  2. 2. Mom, why? Promote immutability Declare what to do, not how to do it Easier parallelization & lazy evaluation Cleaner, more concise code
  3. 3. List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); numbers.forEach(new Consumer<Integer>() { @Override public void accept(Integer integer) { System.out.println(integer); } }); iterating w/ forEach (under the hood)
  4. 4. lambda expressions (argument list) -> code (final String name, final int age) -> code (name, age) -> code name -> code examples: type inference (String name, int age) -> code } λ
  5. 5. iterating w/lambdas List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); numbers.forEach((final Integer value) -> System.out.println(value)); lambda expression
  6. 6. iterating w/lambdas, type inference List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); numbers.forEach(value -> System.out.println(value));
  7. 7. method references List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); numbers.forEach(System.out::println); method reference
  8. 8. transforms using map List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); numbers.stream() .map(value -> value * 2) .forEach(System.out::println);
  9. 9. filtering List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); numbers.stream() .filter(value -> value % 2 == 0) .forEach(System.out::println);
  10. 10. filtering v2 List<String> names = Arrays.asList( "Bob", "Tom", "Jeff", "Scott", "Jennifer", "Steve"); final Function<String, Predicate<String>> startsWithLetter = letter -> name -> name.startsWith(letter); names.stream() .filter(startsWithLetter.apply("J")) .forEach(System.out::println);
  11. 11. Streams.iterate(1, number -> number + 1) .map(number -> number * number) .limit(25) .forEach(number -> System.out.print(number + " ")); // 1 4 9 16 25 36 49 64 ... 529 576 625 Streams
  12. 12. finding with Optional List<String> names = Arrays.asList( "Bob", "Tom", "Jeff", "Scott", "Jennifer", "Steve"); Optional<String> firstS = names.stream() .filter(name -> name.startsWith("S")) .findFirst(); System.out.println(firstS.orElse("None found"));
  13. 13. reducers List<String> names = Arrays.asList( "Bob", "Tom", "Jeff", "Scott", "Jennifer", "Steve"); Optional<String> longestName = names.stream() .reduce((name1, name2) -> name1.length() >= name2.length() ? name1 : name2); if (longestName.isPresent()) { System.out.println(longestName.get()); }
  14. 14. sum reducer List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); long sum = numbers.stream() .map(value -> value * value) .sum();
  15. 15. parallelization numbers.parallelStream() .filter(number -> isPerfect(number)) .forEach(System.out::println);
  16. 16. how far we went in this short talk...
  17. 17. http://pragprog.com/book/vsjava8/functional-programming-in-java
  18. 18. http://jdk8.java.net/ JDK 8 Project
  19. 19. sample code available at: https://github.com/sleberknight/java8-lambda-samples
  20. 20. My Info scott dot leberknight at nearinfinity dot com twitter.com/sleberknight www.sleberknight.com/blog www.nearinfinity.com/blogs/scott_leberknight/all/ scott dot leberknight at gmail dot com

×