List<Person> persons = asList(new Person("Joe"), new Person("Jim"), new Person("John")); forEach(persons).setLastName("Doe"); <p class="indent">
ist<Person> persons = … // sequential version Stream<Person> stream = persons.stream(); //parallel version Stream<Person> parallelStream = persons.parallelStream(); <p class="indent">
List<Person> persons = … Stream<Person> personsOver18 = persons.stream().filter(p -> p.getAge() > 18); <p class="indent">
Stream<Student> students = persons.stream() .filter(p -> p.getAge() > 18) .map(new Function<Person, Student>() { @Override public Student apply(Person person) { return new Student(person); } }); <p class="indent">
Stream<Student> map = persons.stream() .filter(p -> p.getAge() > 18) .map(person -> new Student(person)); <p class="indent">
Stream<Student> map = persons.stream() .filter(p -> p.getAge() > 18) .map(Adult::new); <p class="indent">
List<Student> students = persons.stream() .filter(p -> p.getAge() > 18) .map(Adult::new) .collect(new Collector<Student, List<Student>>() { … }); <p class="indent">
List<Student> students = persons.stream() .filter(p -> p.getAge() > 18) .map(Student::new) .collect(Collectors.toList()); <p class="indent">
List<Student> students = persons.stream() .filter(p -> p.getAge() > 18) .map(Student::new) .collect(Collectors.toCollection(ArrayList::new)); <p class="indent">
List<Student> students = persons.stream() .parallel() .filter(p -> p.getAge() > 18) // filtering will be performed concurrently .sequential() .map(Student::new) .collect(Collectors.toCollection(ArrayList::new)); <p class="indent">