menu
{$Head.Title}}

Übung Java Lambda Double Stream

Übung Java Random Double Stream

Ausgangslage

Mit dieser Übung sortieren wie ein String Array mit Lambda Expressions gemäss den folgenden Kritieren:

  • Sortierung nach der String Länge (Shortest to Longest)
  • Reverse Sortierung nach der String Länge (Longest to Shortest)
  • Alphabetisch nach dem ersten Character
  • String mit einem 'e' zuerst

Die Sortierung erfolgt in einem ersten Schritt mit Lambda Expressions. In einem 2. Schritt lagern wir die Lambda Expressions in ein Interface mit statischen Methoden aus.

Vorgehen

Lösen Sie bitte die Aufgabe wie folgt:

  1. Erzeugen Sie ein neues Java Projekt oder Package für diese Übung.
  2. Verwenden Sie als Klasse die folgenden Vorlage:
    package ch.std.jpf2.lambda.stringcompare;
    
    import java.util.Arrays;
    
    public class StringArraySort {
    
     public static void main(String[] args) {
      String[] sa = { "john", "peter", "claudia", "emil" };
      sortByLength(sa);
      sortByReverseLength(sa);
      sortByFirstLetter(sa);
      sortByContainsE(sa);
     }
    
     private static void sortByLength(String[] sa) {
      // TODO
     }
    
     private static void sortByReverseLength(String[] sa) {
      // TODO
     }
    
     private static void sortByFirstLetter(String[] sa) {
      // TODO
     }
    
     private static void sortByContainsE(String[] sa) {
      // TODO
     }
    }
  3. Programmieren Sie die TODO Regionen aus gemäss der semantischen Aufgabe.
  4. Lagern Sie die Lambda Compare Expressions in das Interface StringCompare aus (siehe Vorlage):
    interface StringCompare {
     public static int compareByLength(String s1, String s2) {
      // TODO
     }
    
     public static int compareByReverseLength(String s1, String s2) {
      // TODO
     }
    
     public static int compareByFirstLetter(String s1, String s2) {
      // TODO
     }
    
     public static int compareByContainsE(String s1, String s2) {
      // TODO
     }
    
    }
  5. Kopieren Sie die StringArraySort um nach StringArraySortMethodReference und ersetzen Sie die Lambda Expressions durch die Interface Referenzen.
Lösung

Eine mögliche Lösung finden Sie hier