Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel>

S

SphereZ

Mitglied
Hallo, es geht darum das wir aus einer alten Übung ein "Lager" erweitern sollen mit eine "getSorted" Methode welche meine Artikel im Lager als sortiertes Array wiedergibt und dieses Sortierkriterium wird der Methode mittels dem funktionalen Interface BiPredicate <Artikel, Artikel> übergeben. Mir ist es aber aktuell ein Rätsel wie ich damit ein Sortierkriterium übergeben soll ich komme einfach nicht drauf auch die andere Studenten haben aktuell noch keine Lösung gefunden und wir verstehen auch nicht wirklich warum wir keinen Comparator nutzen sollen sondern BiPredicate . Ich brauche nicht unbedingt eine Lösung aber Denkanstöße o.ä. wären sehr hilfreich.
 
S

SphereZ

Mitglied
Was soll das Ergebnis des Predicates sein? Ob das erste größer als das Zweite ist?
Wenn ich gerade richtig verstehe was Sie wissen wollen z.B. habe ich im Array Artikel und die Unterkategorien davon Buch, CD und Video mittels des Predicates soll man z.B. die Unterkategorien nach dem Alphabet sortieren also zuerst alle Bücher dann alle CD usw. oder jeder Artikel hat nen Bestand und soll dann anhand des Bestandes sortiert werden. Hoffe habe die Frage gerade richtig verstanden bin noch nicht lange am Programmieren und hänge jetzt schon etwas länger daran.
 
Flown

Flown

Administrator
Mitarbeiter
Meine Frage ist, wenn 2 Artikel in das BiPredicate kommen, was ist das Ergebnis dieser Funktion (es kann nur false oder true sein). Aber was bedeutet false oder true, als Ausgabe?

PS: Dieses Forum verwendet "du"
 
B

Barista

Top Contributor
Dass Ihr ein BiPredicate statt eines Comparators verwenden sollt, ist wahrscheinlich ein Tutor-Problem.
Da scheint einiges im Argen zu liegen.

Delegiert doch einfach einen Comparator auf das BiPredicate oder anders herum.
 
S

SphereZ

Mitglied
Mhm das ist dann ja abhängig davon was ich vorhabe will ich wie zuerst gesagt nach dem Alphabet sortieren. Würde true wohl meinen Artikel 1 ist > Artikel 2 und false umgekehrt (bezüglich Natural Order) auch wenn ich mir gerade nicht genau sicher bin wie das ohne (Natural Order) funktioniert bzw. ob das überhaupt funktioniert wenn es sich zwar um Artikel Objekte handelt aber nicht alle Artikel Objekte zur selben Unterklasse Buch etc gehören. Beim Bestand fände ich das schon einfacher da muss ich ja einfach nur jeweils die Bestände mit einander vergleichen also Artikel1.getBestand > Artikel2.get Bestand.
 
S

SphereZ

Mitglied
Dass Ihr ein BiPredicate statt eines Comparators verwenden sollt, ist wahrscheinlich ein Tutor-Problem.
Da scheint einiges im Argen zu liegen.

Delegiert doch einfach einen Comparator auf das BiPredicate oder anders herum.
Das Problem ist unser eigentlicher Tutor macht aktuell was anderes wir haben nur ne Vertretung. Vorlesungen finden keine statt nur Audios mit Folien und die Folien gehen wirklich nur grob auf ein Thema ein ohne groß weiter im Internet oder in Büchern zu recherchieren kommt man quasi nicht weiter. Geht das denn ? Wüsste gerade nicht wie da wir gerade erst Comparator vorgestellt bekommen haben und ich zuerst auch dachte ich muss den in der Aufgabe verwenden bis ich gesehen habe wir sollen als Interface das BiPredicate nutzen was mir und so ziemlich jedem anderen absolut unverständlich war.
 
Flown

Flown

Administrator
Mitarbeiter
Ich würde in jedem Fall eine Rückfrage stellen. Man kann es sonst nur so interpretieren, dass es ein "Artikel1 kleiner als Artikel2" Comparator ist und das mit true oder false zu klassifizieren ist.
 
S

SphereZ

Mitglied
Ich würde in jedem Fall eine Rückfrage stellen. Man kann es sonst nur so interpretieren, dass es ein "Artikel1 kleiner als Artikel2" Comparator ist und das mit true oder false zu klassifizieren ist.
Hmh ok dann werde ich mal den Prof anschreiben was er meint. Auch wenn ich mir immer noch unsicher bin wie ich das mache haben leider auch im Gegensatz zum ersten Semester keinerlei Beispielcode wo man sich dran orientieren kann und wenn man im Internet sucht findet man eigentlich auch nur Beispiele mittels Comparator ohne BiPredicate zumindest ich finde da nichts ;D
 
B

Barista

Top Contributor
Delegiert doch einfach einen Comparator auf das BiPredicate oder anders herum.
SortedByBiFunction:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.function.BiFunction;

public class SortedByBiFunction<E> {

    private ArrayList<E> innerList;

    public List<E> getSorted(final BiFunction<E, E, Boolean> biFunction) {

        final List<E> sorted = (List<E>) innerList.clone();

        final Comparator<E> comparator =
                new Comparator<E>() {

                    @Override
                    public int compare(E o1, E o2) {
                        if ( biFunction.apply(o1, o2) ) {
                            return 1;
                        }
                        return 0;
                    }
                };

        Collections.sort(
                sorted ,
                comparator );

        return sorted;
    }

}
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
SortedByBiFunction:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.function.BiFunction;

public class SortedByBiFunction<E> {

    private ArrayList<E> innerList;

    public List<E> getSorted(final BiFunction<E, E, Boolean> biFunction) {

        final List<E> sorted = (List<E>) innerList.clone();

        final Comparator<E> comparator =
                new Comparator<E>() {

                    @Override
                    public int compare(E o1, E o2) {
                        if ( biFunction.apply(o1, o2) ) {
                            return 1;
                        }
                        return 0;
                    }
                };

        Collections.sort(
                sorted ,
                comparator );

        return sorted;
    }

}
Der Comparator ist nicht gültig, damit lässt sich nicht korrekt sortieren.
 
B

Barista

Top Contributor
Der Comparator ist nicht gültig, damit lässt sich nicht korrekt sortieren.
SortedByBiFunction fixed:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.function.BiFunction;

public class SortedByBiFunction<E> {

    private ArrayList<E> innerList;

    public List<E> getSorted(final BiFunction<E, E, Integer> biFunction) {

        final List<E> sorted = (List<E>) innerList.clone();

        final Comparator<E> comparator =
                new Comparator<E>() {

                    @Override
                    public int compare(E o1, E o2) {
                        return biFunction.apply(o1, o2);
                    }
                };

        Collections.sort(
                sorted ,
                comparator );

        return sorted;
    }

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Übergabe eines Befehls an Dos-Box Allgemeine Java-Themen 5
J Methoden per Übergabe eines "Methodennamen-Strings&quot Allgemeine Java-Themen 20
K ursprüngliche ArrayList ändert sich bei Übergabe in Methode Allgemeine Java-Themen 18
L Übergabe an eine eher einfache Java- Applikation wegen Kündigung Allgemeine Java-Themen 1
R Zugriff auf Objektvariablen vs. Übergabe Allgemeine Java-Themen 3
kodela Übergabe einer Referenz Allgemeine Java-Themen 20
X Übergabe ... args Allgemeine Java-Themen 5
S OOP this-Referenz als Konstruktor-Übergabe Allgemeine Java-Themen 8
J Übergabe von post request Parametern Allgemeine Java-Themen 9
nutellastulle Zugriff, Übergabe, Bearbeitung und Ausgabe von Jlist Allgemeine Java-Themen 6
M Übergabe mehrer Files an selbstprogrammieren Parser Allgemeine Java-Themen 4
A Problem bei Übergabe von Werten in ein double Array. Allgemeine Java-Themen 21
S Übergabe / Aufruf einer beliebigen Methode in einer anderen Allgemeine Java-Themen 9
W Threads & Pipes --> Ist eine Übergabe von Objekten mö Allgemeine Java-Themen 7
P Übergabe- Parameter SQL Map Allgemeine Java-Themen 45
M Übergabe von Referenzen Allgemeine Java-Themen 3
G Probleme bei String Übergabe um Public Key zu erzeugen ? Allgemeine Java-Themen 6
R Übergabe und Autostart von Paint Allgemeine Java-Themen 4
V Übergabe per Referenz. Allgemeine Java-Themen 5
L Array Übergabe Allgemeine Java-Themen 8
G Übergabe funzt nicht, aber wieso? Allgemeine Java-Themen 3
lhein Übergabe von Objekten von Java an C über JNI Allgemeine Java-Themen 5
C Übergabe Parameter verändert Allgemeine Java-Themen 5
gotzi242 Schatzsuche mithilfe eines O(log n) Algorithmus Allgemeine Java-Themen 2
C Koordinaten LONG/LAT eines neuen Punktes in bestimmter Entfernen und Winkel berechnen Allgemeine Java-Themen 3
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
L Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Mittelwert anhand eines Stream berechnen Allgemeine Java-Themen 5
kodela Breite eines erweiterten Monitors feststellen Allgemeine Java-Themen 5
R Zeilen eines 2d Arrays abwechselnd links und rechts mit Nullen auffüllen Allgemeine Java-Themen 14
Zrebna Alternative Darstellung eines Codesnippets Allgemeine Java-Themen 33
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
bueseb84 Wget mit Wildcards - oder wie lädt man bei JFrog die letzte Version eines Artifacts herunter Allgemeine Java-Themen 3
N Erkennen eines Programs Allgemeine Java-Themen 2
N Pausieren eines Programmes Allgemeine Java-Themen 4
D Input/Output Implementierung eines CommandHandlers/Parsers für viele Eingaben Allgemeine Java-Themen 26
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
F Wie bekommt man alle Filenamen eines Webserver Verzeichnisses Allgemeine Java-Themen 6
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
N Eigenschaften eines Buttons per Setter verändern Allgemeine Java-Themen 5
S Ausfuehrung eines Programms aufzeichnen..? Allgemeine Java-Themen 4
X Ermittlung eines doppelte Paars mit Streams Allgemeine Java-Themen 50
Stonie Prüfen von direkter Implementierung eines Interfaces Allgemeine Java-Themen 7
S Vorbereitung eines Praktikums Allgemeine Java-Themen 4
H Aufruf eines Web Service anhand übergebenen Parameter Allgemeine Java-Themen 2
M Weiterleiten von empfangenen Nachrichten eines StompSessionHandlers Allgemeine Java-Themen 1
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
H Rename eines Projekts Allgemeine Java-Themen 1
J Fenstergröße eines anderen Programmes auslesen Allgemeine Java-Themen 9
scitex auf Klassen innerhalb eines package zugreifen Allgemeine Java-Themen 22
Meeresgott Erste Schritte Sourcetree - Git | Suchen eines Commits Allgemeine Java-Themen 2
E Status eines USB Mikrofon abfragen Allgemeine Java-Themen 2
DaCrazyJavaExpert OOP Ansätze und Tipps zum Porgrammieren eines Taschenrechners Allgemeine Java-Themen 25
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
I Verbindung eines Java-Plugins mit Webserver Allgemeine Java-Themen 3
L Auswertung eines Testes funktioniert nicht Allgemeine Java-Themen 37
G Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben? Allgemeine Java-Themen 4
GreenTeaYT Elemente eines 2Dim LinkedList von links nach rechts ausgeben? Allgemeine Java-Themen 0
B Spalten eines 2d-Arrays Allgemeine Java-Themen 2
M Rechenprogramm eines wissenschaftlichen Taschenrechners Allgemeine Java-Themen 4
S Eigenschaften (hier Verknüpfung) eines Files lesen Allgemeine Java-Themen 2
E Typüberprüfung eines chars Allgemeine Java-Themen 5
H Hilfe bei Erstellung eines Hilfe Fenster bei Tastendruck (F1 bei Win98) Allgemeine Java-Themen 5
T Teile eines Double-Wertes verändern Allgemeine Java-Themen 2
R Rückgabe eines Arrays durch Funktion Allgemeine Java-Themen 9
H Datentypen Typ eines Arrays überprüfen Allgemeine Java-Themen 9
RalleYTN DPI eines Bildes ändern Allgemeine Java-Themen 4
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
K Bestimmten Bereich eines Strings lesen Allgemeine Java-Themen 6
C -Verschiedene Versionen eines Programms verwalten Allgemeine Java-Themen 7
O Datentypen Erstellung eines Containers, der verschachtelte Map-Strukturen beherbergen kann Allgemeine Java-Themen 0
A einmalige Ausführung eines Methodenabschnittes Allgemeine Java-Themen 3
F CPU Last eines Thread ausfindig machen Allgemeine Java-Themen 0
L Menge der Buchstaben eines Textes zählen Allgemeine Java-Themen 3
F Teil eines Bildes laden Allgemeine Java-Themen 1
N Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
P Löschen eines keys in einer SortedMap Allgemeine Java-Themen 5
RalleYTN Input/Output URL eines Zip Entry? Allgemeine Java-Themen 2
S Alle Methodenaufrufe eines Threads notieren..? Allgemeine Java-Themen 7
J NullPointerExeption bei Inizialisierung eines Arrays Allgemeine Java-Themen 3
I Setzen und Lesen eines Objektes (Enum?) Allgemeine Java-Themen 10
L Implementierung eines AVT-Baums Allgemeine Java-Themen 2
D Größe der Zahlenkombinationen eines Arrays begrenzen Allgemeine Java-Themen 3
D Objekt entlang eines Funktionsgraphens bewegen Allgemeine Java-Themen 6
B Existenz eines Files max 30 sec prüfen Allgemeine Java-Themen 5
U Koordinaten alle Pixel eines Dreiecks zeichnen ausgeben Allgemeine Java-Themen 5
P Wie funktioniert das Feedback eines Klicks auf eine Java GUI Allgemeine Java-Themen 10
thet1983 nach teilen eines Dateinamens suchen Allgemeine Java-Themen 6
T Bezeichnung eines Objektes mit String/int kombinieren Allgemeine Java-Themen 3
Z Auswerten eines eingegeben Termes Allgemeine Java-Themen 13
X Registrierung eines Ecore-Models außerhalb der Eclipse-Umgebung Allgemeine Java-Themen 0
R Instanzen eines Programms Allgemeine Java-Themen 8
I Arbeitsmaterialien eines Softwareentwicklers? Allgemeine Java-Themen 7
L Größe eines Objekts im Arbeitsspeicher Allgemeine Java-Themen 1
D Name eines Nicht-String Objekts ausgeben Allgemeine Java-Themen 4
A Helligkeit eines Bildes berechnen Allgemeine Java-Themen 1
L Anzahl der Tage eines Monats Allgemeine Java-Themen 3
S Java Problem bei der Rückgabe eines Arrays Allgemeine Java-Themen 19
C Best Practice Tiefe Kopie eines Arrays unbekannter Dimension und unbekannten Typs Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben