Java sammeln mit lambda-expression-Beispiel

War ich versucht zu konvertieren, das

 String r = "";
 for ( Persona p : list ) {
    r += p.lastName;
 }

Zu stream().filter.collect() form, aber ich möchte wissen, wie man die collect mit ein lambda-Ausdruck (nicht-Methode Referenzen). Ich konnte Sie nicht finden, ein gutes Beispiel.

Dies ist, was ich haben

class B {
    public static void main( String ... args ) {
        List<Person> p = Arrays.asList(
                new Person("John", "Wilson"),
                new Person("Scott", "Anderson"),
                new Person("Bruce", "Kent"));

        String r;
        String s = p.stream()
            .filter( p -> p.lastName.equals("kent"))
            .collect((r, p) -> r += p.lastName);///?????
    }
}
class Person {
    String name;
    String lastName;
    public Person( String name, String lastName ) {
        this.name = name;
        this.lastName = lastName;
    }
}

Allen Beispielen, die ich finde sind mit der Methode Verweise, während ich denke es sollte eine einfache Möglichkeit zum schreiben eines lambda-Ausdrucks statt.

  • Haben Sie sah Collectors.joining() oder ist die Frage nach der Umsetzung es selbst?
  • stackoverflow.com/questions/31456898/...
  • Die Frage ist, wie die Verwendung eines lambda-Ausdrucks, so etwas wie: .collect( (acc, p ) -> acc += p.lastName);
  • Das ist nicht wirklich, wie es funktioniert. Müssen Sie zunächst die Zuordnung jeder person zu deren Nachname mit map(person -> person.lastName) und dann können Sie sammeln, werden diese Zeichenfolgen mit .collect(joining()).
  • Die Lektion, die Sie lernen sollen, ist, dass Sie 99% der Zeit sollten mit einem pre-build Sammler, und alle den rest der Zeit sollten Sie mit Collector.of oder mit collect(Supplier, BiConsumer, BiConsumer).
  • Gut, die Frage ist, genau zu erfahren, dass die 1%. Ich weiß, wie man es mit der Methode Verweise, aber ich habe Mühe mit lambdas Ausdrücken. Die Tatsache, dass ich mehr Kommentare als Antworten gibt an, dass dies schwer für alle anderen auch.

InformationsquelleAutor OscarRyz | 2016-04-06
Schreibe einen Kommentar