Zusammenfassen von Methoden in einer Hilfsmethode

Cosmic_23

Mitglied
Hallo liebes Forum,

ich habe mal eine Frage.
Derzeit schreibe ich einen Code zur Verwaltung von Immobilien und deren dazugehörigen Mietern.
Folgende 7 Methoden greifen alle auf die selbe Liste zurück:
searchStreet()
searchRenterFullName()
searchNumberofRooms()
searchAllRenters()
searchUnleased()
searchLeased()
searchUnleasedWithRoomsEqualTo()

Ich würde gerne eine Hilfsmethode dazu schreiben, damit ich nicht alle untereinander aufführen muss (da sie ja identisch aufgebaut wären).
Kann mir jemand einen Tipp geben wie diese Hilfsmethode aussehen müsste?

Vielen lieben Dank & Grüße!

P.S: Ja das ist eine Hausaufgabe. Ich möchte es auch selbst schreiben, bin gerade aber leider an dieser Stelle am verzweifeln ….
 
K

kneitzel

Gast
Also im Augenblick fehlen mir hier noch nähere Informationen, was Du genau meinst.

Wenn Du überall auf die gleiche Liste mit Daten zurück greifst und nur jeweils ein Suchkriterium unterschiedlich ist, dann kannst Du eine Methode schreiben, der Du halt auch das Kriterium übergibst. Das wäre dann in etwa wie bei der Streams API das .filter(...), das ein Predicate übergeben bekommt.
Predicate Java Docs: https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html

Und dann ist die jeweilige konkrete Suche nur noch ein Aufruf der neuen Methode mit einem Lambda Ausdruck als Predicate.
 

Cosmic_23

Mitglied
Java:
public List<Apartment> searchStreet(String street){
//
ArrayList returnList = new ArrayList();
apartments.stream().map(apartment -> street.equals(apartment.getStreet())).forEach(apartment -> returnList.add(apartment));
if(returnList.size() == 0){
    System.out.println("No match for:" + street + ". Please try a different street");
    return(returnList);
} else {   
return(returnList);
}
}     

public List<Apartment> searchRenter(String renterFirstName, String renterLastName){
//
String renterFullName = renterFirstName + " " + renterLastName;
ArrayList returnList = new ArrayList();
apartments.stream().map(apartment -> renterFullName.equals(apartment.getStreet())).forEach(apartment -> returnList.add(apartment));
if(returnList.size() == 0){
    System.out.println("No match for:" + renterFullName + ". Please try a different name.");
    return(returnList);
} else {   
return(returnList);
}
}

Ich dachte mir ich abstrahiere nur den unteren Teil über
private list check result (list returnList, object edObject. string messagePort)

Was meint ihr?
 

Robat

Top Contributor
Hattest du den Code mal ausprobiert? stream().map() lässt dich ein Objekt in ein anderes Objekt (ggf auch anderer Datentyp) konvertieren. Du würdest momentan also alle Elemente deiner Liste in einen boolean konvertieren und diese danach einer List<Apartment> hinzufügen. Wenn du konstant mit Generics arbeiten würdest, würdest du das auch selber feststellen.

Wie @kneitzel das schon sehr schön gesagt hat, kannst du hier mit Predicates arbeiten. Das könnte dann zum Beispiel so aussehen
Java:
public List<Apartment> searchStreet(String street) {
    return search(apartment -> apartment.getStreet().equals(street));
}

public List<Apartment> searchRentner(String name, String lastname) {
    return search(apartment -> apartment.getRentner().getName().equals(name) && apartment.getRentner().getLastname().equals(lastname));
}

private List<Apartment> search(Predicate<Apartment> condition) {
    return apartments.stream().filter(condition).collect(Collectors.toList());
}
 

Cosmic_23

Mitglied
Habe auch versucht mit einem Collector zu arbeiten aber es gab ein conversions Problem und eine Kollision wegen abstraktem irgenetwas.. hat leider nicht geklappt :S

Ist das Return statement denn gültig? Hast du eine Dokumentation für "return search" ?
 

Robat

Top Contributor
conversions Problem und eine Kollision wegen abstraktem irgenetwas.
Ja das ist genau das, was ich oben angesprochen habe. Du hast versuchst einen boolean in eine List<Apartment> hinzuzufügen weil du map verwendet hast..
Ist das Return statement denn gültig? Hast du eine Dokumentation für "return search" ?
Warum sollte es nicht gültig sein? search ist eine Methode die ich selber geschrieben habe .. das ist die letzte Methode in dem Listing
 
K

kneitzel

Gast
Hmm, muss ich mir jetzt Sorgen um meine Festanstellung machen? Ist es ein Grund für eine Kündigung, wenn man Predicates im Job verwendet hat?

Ich mache mir jetzt doch ernsthaft Sorgen....

*scnr*
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A 2 Methoden zu einer zusammenfassen Java Basics - Anfänger-Themen 5
B Methoden Mehrere ähnliche Methoden zusammenfassen Java Basics - Anfänger-Themen 24
P Zwei Methoden in einen Schritt zusammenfassen Java Basics - Anfänger-Themen 8
E Methoden zusammenfassen/Kalender erstellen Java Basics - Anfänger-Themen 13
missy72 Catch Blöcke zusammenfassen Java Basics - Anfänger-Themen 6
C Code zusammenfassen Java Basics - Anfänger-Themen 5
H 3 Comparatoren zu einem zusammenfassen - Chaining... Java Basics - Anfänger-Themen 15
J Characters als String zusammenfassen Java Basics - Anfänger-Themen 3
N Array-Werte zusammenfassen Java Basics - Anfänger-Themen 20
D Mehrere Objekte in ein Objekt zusammenfassen Java Basics - Anfänger-Themen 16
D Zusammenfassen zweier Programme Java Basics - Anfänger-Themen 3
M Mehrere Variabeln zusammenfassen Java Basics - Anfänger-Themen 4
L Schleifen ergebnis zusammenfassen Java Basics - Anfänger-Themen 2
L Schleifen ergebnis zusammenfassen Java Basics - Anfänger-Themen 9
B OOP Eigene Objekte in Arrays zusammenfassen Java Basics - Anfänger-Themen 3
MU5T4NG Input/Output mehrere Labels zusammenfassen + ändern Java Basics - Anfänger-Themen 4
K Verschiedene (Thread) Objekt-Positionen (int) in einem Array zusammenfassen Java Basics - Anfänger-Themen 3
E Datentypen Arrays Zusammenfassen Java Basics - Anfänger-Themen 10
T JTable Spalten zusammenfassen Java Basics - Anfänger-Themen 5
B Calculator - Buttons zusammenfassen Java Basics - Anfänger-Themen 8
J Zusammenfassen von Blöcken Java Basics - Anfänger-Themen 12
P ActionListener zusammenfassen? Java Basics - Anfänger-Themen 8
G Mehrere Textfelder zusammenfassen Java Basics - Anfänger-Themen 4
J 2 Applets zu 1 zusammenfassen? Java Basics - Anfänger-Themen 7
S Ergebnisse einer while Schleife zusammenfassen Java Basics - Anfänger-Themen 4
G Möglichkeit zum Zusammenfassen der if-Funktion Java Basics - Anfänger-Themen 5
S Pixel in Binärbildern zu Konturen zusammenfassen Java Basics - Anfänger-Themen 10
emreiu Methoden Rekursive Methoden Runter- & Hochzählen Java Basics - Anfänger-Themen 2
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
J Argumente in Methoden übergeben Java Basics - Anfänger-Themen 1
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
Renjiroo Java Bmi Rechner mit Methoden Java Basics - Anfänger-Themen 4
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
Alen123 Erstes Arbeiten mit Methoden. Java Basics - Anfänger-Themen 5
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
M Erklärung von Ausnahmebehandlung in Methoden Java Basics - Anfänger-Themen 13
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
L Rekursive Methoden Java Basics - Anfänger-Themen 14
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
W Methoden aufrufen - auch klassenübergreifend? Java Basics - Anfänger-Themen 9
Kotelettklopfer Methoden nicht aufrufbar Java Basics - Anfänger-Themen 34
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
S abstrakte methoden in subclass? Java Basics - Anfänger-Themen 7
S Methoden - Warum int wenn auch void? Java Basics - Anfänger-Themen 3
H Kann man Methoden öfter aufrufen? Java Basics - Anfänger-Themen 2
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
lougoldi Verkettung von Methoden und Konstruktoren Java Basics - Anfänger-Themen 4
Zeppi OOP Methoden mit einander Verknüpfen Java Basics - Anfänger-Themen 6
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
A Parametar übergabe zwischen Methoden Java Basics - Anfänger-Themen 26
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
O Attribute die Methoden zählen Java Basics - Anfänger-Themen 5
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
G Methoden Methoden mit versch. Datentypen Java Basics - Anfänger-Themen 1
T Ich habe eine Variabel die nicht Methoden übergreifend ist. Kann mir jemand Helfen :) Java Basics - Anfänger-Themen 5
Junger_Basileus Celsius -> Fahrenheit / Strukturierung in statischen Methoden Java Basics - Anfänger-Themen 7
J Verschachtelte Methoden Java Basics - Anfänger-Themen 9
H Methoden in anderen Methoden aufrufen Java Basics - Anfänger-Themen 6
Kawastori Hilfe bei Methoden Übung Java Basics - Anfänger-Themen 6
veryck Methoden Rekursive Methoden mit Rückgabeparameter Java Basics - Anfänger-Themen 9
C Methoden können nicht auf Instanzvariable der Klasse zugreifen Java Basics - Anfänger-Themen 3
P Methoden aufrufen - Fehler Java Basics - Anfänger-Themen 20
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Generics Methoden Java Basics - Anfänger-Themen 7
L Test-Methoden schreiben Java Basics - Anfänger-Themen 13
S throws bei Methoden Java Basics - Anfänger-Themen 4
L Best Practice Code Refactoring für Methoden mit fast gleicher Aufbau Java Basics - Anfänger-Themen 6
I Greedy Methode Methoden nutzen Java Basics - Anfänger-Themen 3
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
A Klassen und methoden Java Basics - Anfänger-Themen 15
S Übergabe von Arrays an Methoden Java Basics - Anfänger-Themen 20
L Methoden Wie Löse ich ext Methoden Aufruf Fehler? Java Basics - Anfänger-Themen 3
A Bankweverwaltung mit Klassen und Methoden Java Basics - Anfänger-Themen 14
B Methoden Ausgeben Aufgabe Java Basics - Anfänger-Themen 15
M Aufsplitten von Methoden in andere Klassen Java Basics - Anfänger-Themen 2
T Methoden Verständnis Java Basics - Anfänger-Themen 14
M Feste Reihenfolge von dem Ablauf von Methoden Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben