Funktion nur 1 Rueckgabewert

Dennis190

Mitglied
Hallo,

das ist jetzt nur pseudo code. Aber wie ihr seht erzeugt die Funktion eine map. Sie durchlaeuft 2 for loops.
Je nachdem ob die if Bedingung greift, wird in der map ein Eintrag "success" oder "failure" einem key zugewiesen.
Wie ihr auch seht gibt es eine 2.Variable counter die zaehlt wie oft success in die map eingetragen wurde.
Da es sich aber um eine funktion handelt und ich nur 1 Wert zurueckgeben kann, geht mir der counter leider verloren.
Mir bleibt wohl nichts anderes uebrig als nochmal ueber die map mit dem Keyset zu iterieren und nochmal den counter zu berechnen.

HashMap<String,String> createMap(list1, list2 )
{
HashMap<String,String> map = new HashMap<String,String>();
int counter = 0;

for(.....) {
for(......)
{
if(condition)
{
map.put(key,success);
counter++;
}
}
map.put(key,failed);
}
return map;

}
 

fhoffmann

Top Contributor
Und weshalb schreibst du nicht eine eigene Klasse, die du zurückgibst:
Java:
class MeinRueckgabewert { // sinnvolleren Klassennamen wählen
  Map<String,String> map;
  int counter;
}
 
Zuletzt bearbeitet:

Dennis190

Mitglied
Ja das ist eine Moeglichkeit. Aber dann kann ich die Methode nicht mehr createMap nennen :)
Aber danke, ist zumindest eine Moeglichkeit. Und ja wie du auch schon festgestellt hast. Eine Namen finden.(nicht so einfach)
Die Methode gibt dann letztendlich eine Map und den Counter zurueck.

ich wuerde die Klasse dann als public static Helper als inner class deklarieren.
 

mihe7

Top Contributor
3
Aber dann kann ich die Methode nicht mehr createMap nennen
Die Aufgabe der Methode besteht auch nicht darin, irgendeine Map zu erstellen...
Je nachdem ob die if Bedingung greift, wird in der map ein Eintrag "success" oder "failure" einem key zugewiesen.
... was soll das Ganze also werden, wenn es fertig ist?

public static Helper
Das ist so ziemlich der schlechteste aller Namen (X wäre kürzer und würde genauso viel aussagen).

Mir bleibt wohl nichts anderes uebrig als nochmal ueber die map mit dem Keyset zu iterieren und nochmal den counter zu berechnen.
Du könntest z. B.
1. ein Objekt mit dem Ergebnis zurückgeben (s. Antwort von @flopalko)
2. die Anzahl zurückgeben und eine gegebene Map füllen
3. die erzeugte Map zurückgeben und die Anzahl an einen gegebenen Consumer (oder anderen Callback) weitergeben
 

Dennis190

Mitglied
public static Helper
Das ist so ziemlich der schlechteste aller Namen (X wäre kürzer und würde genauso viel aussagen).

Es ist ja eine innere Klasse also wird sie immer nur in Verbindung mit der umgebenden Klasse aufgerufene. Also z.B. TestService.Helper, folglich ist das schon aussagekraeftig. Wie soll man sonst eine Klasse nennen die nur eine Map und einen counter enthaelt.


2. die Anzahl zurückgeben und eine gegebene Map füllen
3. die erzeugte Map zurückgeben und die Anzahl an einen gegebenen Consumer (oder anderen Callback) weitergeben

zu 2. Ja ich koennte die map als Parameter uebergeben und sie dann in der Methode fuellen. Ich denke das ist wohl die beste Moeglichkeit.

zu 3. das versteh ich leider nicht. Klar die map zurueckgeben, aber wie soll ich dann die Anzahl an einen Consumer weitergeben ?
 
K

kneitzel

Gast
Es ist ja eine innere Klasse also wird sie immer nur in Verbindung mit der umgebenden Klasse aufgerufene. Also z.B. TestService.Helper, folglich ist das schon aussagekraeftig. Wie soll man sonst eine Klasse nennen die nur eine Map und einen counter enthaelt.

Die Frage ist doch wirklich, was Du da überhaupt genau machst, so dass Du diese innere Klasse brauchst? Was ist darin? Was willst Du kapseln?

Wenn die Kombination aus dieser Map und Count zusammen einen Sinn machen, dann gib dem einen sinnvollen Namen und kapsel es in der inneren Klasse. Und dann könnte die innere Klasse eine Instanz von sich zurück geben. Aber wenn diese Kombination keinen Sinn macht, dann ist die Frage, wieso Du beider zurück geben musst. Dann ist es evtl. etwas, das anders aufgebaut werden sollte, sprich das OO Design müsste überdacht werden. Da könnte es also durchaus sinnvoll sein, das noch einmal zu beleuchten.

Und bezüglich Consumer / Callback: Du übergibst dann einfach eine Instanz, in der Du dann eine Methode aufrufst. Also hast Du z.B. ein Interface, in dem Du nur setNumberOfResults(int) definierst und davon übergibst Du dann z.B. eine Instanz an die Methode. Dann kann vorm Ende einmal darauf setNumberOfResults(counter) aufgerufen werden.
 

mihe7

Top Contributor
Es ist ja eine innere Klasse also wird sie immer nur in Verbindung mit der umgebenden Klasse aufgerufene. Also z.B. TestService.Helper, folglich ist das schon aussagekraeftig.
Zusätzlich zur Antwort von @kneitzel: Namen wie Helper und Util sind Ausdruck dafür, dass einem nichts anderes eingefallen ist, was wiederum ein starkes Indiz ist, dass man irgendein Konzept des Problembereichs noch nicht erkannt oder noch nicht ganz verstanden hat. Ein TestService.Helper sagt mir genauso viel wie TestService.X -> nix.

Nun ist es schwierig, etwas einem Namen zu geben, dessen Sinn man nicht kennt. Beispiel: Array und Zähler. Sagt erst mal nichts. Kennt man den Sinn dahinter, könnte sich daraus eine ArrayList ergeben. Daher die Frage, was das Ganze werden soll.

In Deinem letzten Kommentar hast Du TestService erwähnt. Auch das ist ein sehr allgemeiner Name, der vermuten lässt, dass ganz allgemein Tests durchgeführt werden. Deinem Pseudocode nach zu urteilen, ist das aber nicht der Fall, denn scheinbar wird hier eine ganz bestimmte Bedingung abgeprüft. Insofern wäre der Name TestService auch nicht optimal (btw: Service/Manager sind auch Namen, die gerne unbedarft verwendet werden). Unabhängig davon: selbst wenn diese Klasse ganz allgemein Tests durchführt, dann könnte man die innere Klasse wenigstens Result nennen. Das macht zumindest klar, dass es sich um ein (irgendein) Ergebnis des TestService handelt.
 

White_Fox

Top Contributor
zu 3. das versteh ich leider nicht. Klar die map zurueckgeben, aber wie soll ich dann die Anzahl an einen Consumer weitergeben ?

Ich denke er meint, daß der Consumer deiner Berechnungsklasse vor der Berechnung mitteilt "Ich will das Ergebnis". Etwas umständlich, wie ich finde.

Liefere doch sowas als Ergebnis zurück:
Java:
public class IrgendwasMitMapUndCounterMacher{
    private int counter;
    private Map map;
    
    public IrgendwasMitMapUndCounterMacher(Object berechungsparameter){
        //...führe Berechnung aus
    }
    
    public int getCounter(){return counter;}
    public Map getMap(){return map;}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
M Eine Funktion zuweisen Java Basics - Anfänger-Themen 3
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
M variable in anderer funktion aufrufen Java Basics - Anfänger-Themen 10
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W GUI - JButton ohne Funktion? Java Basics - Anfänger-Themen 24
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
R Buttons ohne Funktion Java Basics - Anfänger-Themen 2
I Generische Funktion Java Basics - Anfänger-Themen 3
E Pervasive PSQL insert funktion geht nicht Java Basics - Anfänger-Themen 9
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
H Den Wert einer rekursiven Funktion bestimmen Java Basics - Anfänger-Themen 5
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
M toDouble Funktion Java Basics - Anfänger-Themen 3
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
X Ackermannsche Funktion Java Basics - Anfänger-Themen 32
F Arrays: Mathematische Funktion Java Basics - Anfänger-Themen 19
P Dezimal zu Hexadezimalzahl Funktion Java Basics - Anfänger-Themen 5
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
M Arrays in Funktion Kopieren und Bearbeiten Java Basics - Anfänger-Themen 4
B Funktion mit mehreren Rückgabewerten aka Prozeduren? Java Basics - Anfänger-Themen 12
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
M Wie lang eine Funktion/Methode? Java Basics - Anfänger-Themen 51
N den inhalt eines array per funktion ausgeben Java Basics - Anfänger-Themen 8
R Ackermann Funktion Java Basics - Anfänger-Themen 2
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
N Abfragen eines Textes aus einem JTextField in Java, Funktion, CardLayout, Java Basics - Anfänger-Themen 2
T Rekursion Warum bricht meine Funktion nicht ab Java Basics - Anfänger-Themen 4
N Funktion funktioniert nicht immer Java Basics - Anfänger-Themen 6
E Contain-funktion überlisten Java Basics - Anfänger-Themen 4
J Division ohne Arithmetische Funktion Java Basics - Anfänger-Themen 2
S Funktion in Klasse auslagern Java Basics - Anfänger-Themen 4
J Problem mit Boolean bei Funktion! Java Basics - Anfänger-Themen 5
S Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht? Java Basics - Anfänger-Themen 19
D Nullstellen einer Funktion 3. Grades mit Horner Schema Java Basics - Anfänger-Themen 6
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
D Funktion gibt Dimension zurück Java Basics - Anfänger-Themen 11
A Rekursion Funktion in eine Iterativ Funktion umwandeln Java Basics - Anfänger-Themen 9
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
B Zugriffe in einer Klasse / Funktion Java Basics - Anfänger-Themen 9
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
J Array innerhalb einer Funktion mehrfach iniatilisieren Java Basics - Anfänger-Themen 4
T Lambda-Funktion bei Binärbäumen Java Basics - Anfänger-Themen 13
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
M Thread.sleep() Funktion Java Basics - Anfänger-Themen 1
B OOP Wie benutze ich die Main Funktion richtig? Java Basics - Anfänger-Themen 10
H Nicht Static Funktion ohne Objekt aufrufen? Java Basics - Anfänger-Themen 6
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
E Compare-Funktion bei eigener Klasse Java Basics - Anfänger-Themen 4
S Threads run - Funktion wird nur einmal ausgeführt. Java Basics - Anfänger-Themen 8
B Anwender soll mathematische Funktion eingeben können, Einfachster Fnktionsplotter Java Basics - Anfänger-Themen 4
R If Funktion funktioniert nicht :P Java Basics - Anfänger-Themen 3
H Funktion in Hintergrund und Vordergrund ausführen Java Basics - Anfänger-Themen 11
S Funktion die mir fuer einen String eine Zahl zwischen 0.0 und 1.0 zurueckliefert..? Java Basics - Anfänger-Themen 9
S Funktion eines Stacks Java Basics - Anfänger-Themen 4
T Integer-Objekt über Hash-Funktion in Array ablegen Java Basics - Anfänger-Themen 1
S Separate Funktion für JUnit-Test Java Basics - Anfänger-Themen 3
D Keine Funktion bei "else" Java Basics - Anfänger-Themen 5
S timer funktion mit javax panel Java Basics - Anfänger-Themen 3
T Klassen Funktion in einem Funktionsaufruf definieren Java Basics - Anfänger-Themen 3
F Funktion eines JButton in einen Vektor verlagern Java Basics - Anfänger-Themen 4
X Eval-Funktion mit Variable Java Basics - Anfänger-Themen 2
T Screenreader Funktion Java Basics - Anfänger-Themen 2
S Wertetabelle einer Funktion f : R -> R Java Basics - Anfänger-Themen 1
P Methoden suche funktion die char wert ausgibt wenn man numerischen wert und radix angibt Java Basics - Anfänger-Themen 1
1 repaint() Funktion erzeugt Flackern Java Basics - Anfänger-Themen 33
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
R if funktion ohne else - Bedingung trifft nicht zu, ausgabe nicht nachvollziehbar Java Basics - Anfänger-Themen 7
shiroX OOP Java Funktion implementieren Java Basics - Anfänger-Themen 3
O Debug-Funktion mit Slick - Kleines Problem Java Basics - Anfänger-Themen 5
F Funktion immer zur vollen Stunde? Java Basics - Anfänger-Themen 3
S ResultSet close() in funktion nich möglich. Java Basics - Anfänger-Themen 8
C Meine erste Funktion Java Basics - Anfänger-Themen 12
J Funktion um JSON per Post senden/emfangen Java Basics - Anfänger-Themen 3
G OOP Aus Objekt auf Funktion der erzeuger Klasse zugreifen? Java Basics - Anfänger-Themen 11
D Binäre Suche für Integerarray in rekursiver Funktion Java Basics - Anfänger-Themen 5
M Interface als Konstruktorparameter nutzen, um Funktion zu plotten Java Basics - Anfänger-Themen 14
NR_EIGHT Benutzereingabe in Funktion verpacken Java Basics - Anfänger-Themen 4
J Funktion definieren und ausfuehren Java Basics - Anfänger-Themen 27
D Loop Funktion für Robot Klasse Java Basics - Anfänger-Themen 5
N mathematische Funktion Java Basics - Anfänger-Themen 29
R Programm verstehen, Funktion Java Basics - Anfänger-Themen 4
C Automatisches Ausfuehren einer Funktion beim Laden eines Jar files Java Basics - Anfänger-Themen 3
O Nicht Standard Form boolesche Funktion in Standard Form parsen Java Basics - Anfänger-Themen 3
F Sleep Funktion Java Basics - Anfänger-Themen 12
S Euklid Funktion Java Basics - Anfänger-Themen 8
H Funktion mit Argumenten Java Basics - Anfänger-Themen 5
Q Random Funktion JButtons Java Basics - Anfänger-Themen 6
O Probleme mit der repaint-Funktion Java Basics - Anfänger-Themen 6
F Eine Frage über paint() Funktion Java Basics - Anfänger-Themen 2
S Parameterübergabe - identische Funktionen, aber falsche Funktion Java Basics - Anfänger-Themen 5
C Probleme mit replaceAll Funktion Java Basics - Anfänger-Themen 9
S Vector mit beliebigen Klassen an Funktion übergeben Java Basics - Anfänger-Themen 20
C OOP Java JButton mit Funktion belegen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben