Datenselektion mit der »Predicate«-Schnittstelle

Cepheus

Mitglied
Als Lernender bin ich beim Thema Lambda-Schnittstellen im Paket java.util.function angekommen. Ich habe probiert, folgenden Code praktisch nachvollziehen, aber offensichtich ist im Code ein Fehler. Könnte mir bitte jemand helfen?

Java:
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
// Datenselektion mit der »Predicate«-Schnittstelle:
// printNumbers gibt in einer Zeile alle Zahlen aus 'data' aus, für die 'condition' zutrifft.
public class Main {
    public static void main(String[] args) {

        public static void printNumbers(List<Integer> lst, Predicate<Integer> condition) {
            for(Integer item : lst)
                if(condition.test(item))
                    System.out.print(item + " ");
            // zum Schluss neue Zeile beginnen
            System.out.println();
        }

        var data = new ArrayList<Integer>();
        for(int i=1; i<100; i++)  // data = [1, 2, 3, ..., 100]
            data.add(i);

        // Aufruf von printNumbers() mit diversen Lambda-Ausdrücken

        // alle Zahlen kleiner 10 ausgeben
        System.out.println("Kleiner 10");
        printNumbers(data, n -> n < 10);

        // alle gerade Zahlen ausgeben
        System.out.println("Gerade");
        printNumbers(data, n -> n % 2 == 0);

        // alle Quadrate ausgeben
        System.out.println("Quadratzahlen");
        printNumbers(data, n -> (int)Math.sqrt(n) * (int)Math.sqrt(n) == n);
    }
}
 

Jw456

Top Contributor
Du kannst nicht innerhalb einer Methode eine neue erstellen.
Zeile 9 -15 sollte nicht in der main Methode sein.

das sollte nach Zeile 34 , nach der Klammer von der main sein
 
Zuletzt bearbeitet:

Jw456

Top Contributor
Java:
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
// Datenselektion mit der »Predicate«-Schnittstelle:
// printNumbers gibt in einer Zeile alle Zahlen aus 'data' aus, für die 'condition' zutrifft.
public class Main {
    
        public static void printNumbers(List<Integer> lst, Predicate<Integer> condition) {
            for(Integer item : lst)
                if(condition.test(item))
                    System.out.print(item + " ");
            // zum Schluss neue Zeile beginnen
            System.out.println();
        }

     public static void main(String[] args) {

        var data = new ArrayList<Integer>();
        for(int i=1; i<100; i++)  // data = [1, 2, 3, ..., 100]
            data.add(i);

        // Aufruf von printNumbers() mit diversen Lambda-Ausdrücken

        // alle Zahlen kleiner 10 ausgeben
        System.out.println("Kleiner 10");
        printNumbers(data, n -> n < 10);

        // alle gerade Zahlen ausgeben
        System.out.println("Gerade");
        printNumbers(data, n -> n % 2 == 0);

        // alle Quadrate ausgeben
        System.out.println("Quadratzahlen");
        printNumbers(data, n -> (int)Math.sqrt(n) * (int)Math.sqrt(n) == n);
    }
}
 

Jw456

Top Contributor
dein Programm wird so aber auch nicht laufen schaue dir nochmal an wie das mit dem interface get.
 

Cepheus

Mitglied
dein Programm wird so aber auch nicht laufen schaue dir nochmal an wie das mit dem interface get.
Doch, das Programm arbeitet richtig.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I JPA / Hibernate "Predicate" kombinieren in der gleichen Query Java Basics - Anfänger-Themen 1
G Schnittstelle via WSDL Java Basics - Anfänger-Themen 7
Queiser Datentypen 2 generische Datentypen für eine Schnittstelle Java Basics - Anfänger-Themen 1
V Schnittstelle einer Klasse? Java Basics - Anfänger-Themen 3
D Schnittstelle-Code vom Programm Trennen Java Basics - Anfänger-Themen 5
K [Schnittstelle] JavaProject mit Arduino verbinden Java Basics - Anfänger-Themen 5
B Schnittstelle Java Basics - Anfänger-Themen 7
H Serielle Schnittstelle Java Basics - Anfänger-Themen 1
S Nutzung einer implementierten Schnittstelle Java Basics - Anfänger-Themen 3
R Interface Datentyp bei Erzeugung eines Objekts, dessen Klasse eine Schnittstelle implementiert Java Basics - Anfänger-Themen 18
HoloYoitsu args-Parameter durchschleifen (Schnittstelle erweitern?) Java Basics - Anfänger-Themen 27
Luk10 OOP Sehr allgemeine Schnittstelle Java Basics - Anfänger-Themen 19
K Schnittstelle - Interface unklar Java Basics - Anfänger-Themen 4
C Ansteuerung RS232 Schnittstelle Java Basics - Anfänger-Themen 15
W Übergabe Stringzeilen von serieller Schnittstelle in andere Klasse Java Basics - Anfänger-Themen 3
R Gibt es eine (Schnittstelle) für .ini Datei Formatierungen? Java Basics - Anfänger-Themen 8
S Objekt durch Schnittstelle ersetzen Java Basics - Anfänger-Themen 2
S Schnittstelle für Datenbank bzw. Dateiformat Java Basics - Anfänger-Themen 2
M Problem mit Schnittstelle Java Basics - Anfänger-Themen 6
I externe JAVA-Schnittstelle einbinden Java Basics - Anfänger-Themen 2
D Frage zur Verwendung einer Schnittstelle Java Basics - Anfänger-Themen 4
D In eclipse Methode von Schnittstelle zum Laufen bringen? Java Basics - Anfänger-Themen 14
C Zugriff auf serielle Schnittstelle Com Port Java Basics - Anfänger-Themen 13
G Allgemeine Schnittstelle für Ausgabe? Java Basics - Anfänger-Themen 5
G Kartenleser über Serielle-Schnittstelle auslesen Java Basics - Anfänger-Themen 2
M Braucht jede Klasse eine Schnittstelle ? Java Basics - Anfänger-Themen 4
K ASCII Schnittstelle. Java Basics - Anfänger-Themen 3
M serielle Schnittstelle zu Kartenleser Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben