Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Java Basics » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
learner33

Wäre schön wenn du mir erklären könntest wie ich die Lücken ausfüllen kann, damit ich es noch bisschen versuchen kann zu verstehen.

Abgeben muss ich die Aufgabe sowieso nicht
learner33

Noch tipps ?

Muss das wenigstens noch vor der Klausur verstehen großes Grinsen
learner33

In der Aufgabe steht das Ergebnis des Vergleich als Rückgabewert der Methode.

Puuh irgendwie sehr schwierig für mich
as_string

a und b können jetzt aber von einem beliebigen Typ T sein. Du kannst die nicht einfach mit einem "<" oder ">" oder "==" vergleichen. Dafür gibt es aber den Comparator<T>, der genau diesen Vergleich passend für T implementiert.
Deshalb bekommst Du ja so einen Comparator (in Form von "comp") rein gereicht und musst den verwenden, um feststellen zu können, was größer/kleiner ist oder ob sie gleich sind.
Was ist jeweils die Rückgabe von der compare() Methode der Comparator-Klasse?

Gruß
Marco
learner33

Ich müsste a und b vergleichen oder ?
as_string

Du rätst wild rum!

Erstmal meinte ich eine ganz andere Lücke, als ich von "weiter unten" gesprochen hatte: Ich bin immer noch innerhalb der Methode "toBeSwapped()" und nicht in sort(). Dort ist ganz am Ende noch eine Lücke und da musst Du auch die comp.compare(a, b) richtig verwenden!

Das if am Anfang der "sort()" Methode, an dem Du die ganze Zeit rumbastelst, gehört zu der b). Da soll, wie in der Aufgabe steht, alle mögliche auf "null" überprüft werden und die Größe der der "list" >0. Dazu machst Du ja aber kein compare()!
Beantworte doch erstmal meine Frage: Du rufst ein comp.compare(a, b) für zwei Elemente auf und sollst sagen, ob die schon in der richtigen Reihenfolge sind und deshalb kein Swap nötig ist (also Rückgabewert von toBeSwapped() soll dann false sein), oder ob sie verkehrt herum ist und deshalb getauscht werden soll.
Wie kannst Du das an dem Rückgabewert von comp.compare(a, b) ablesen?

Gruß
Marco
learner33

Und den letzten Teil würde ich so machen:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
 public Vector<T> sort(Vector<T> list, Comparator<T> comp, Mode mode) {
        if(___________________________)
            return null;
        for(int a = 0;b>a ;b++ ) {
            for(int b = 0;a>b ;a++ ) {
                if(compare( a,b , comp, mode)) {
                    _______________;
                }
            }
        }
    }

}



Würde das auch in etwa so gehen?
learner33

Nein blödsinn .

Es soll ja return zurück gegeben werden.

Also:

code:
1:
2:
3:
4:
5:
6:

public Vector<T> sort(Vector<T> list, Comparator<T> comp, Mode mode) {
        if(____comp.compare(a,b)_==_comp.compare( a,b)________)
            return null;


Jetzt ok?
learner33

Bei gleichen Werten müsste nicht sortiert werden .

Bei kleineren oder grösseren Werten schon ?

code:
1:
2:
3:
4:
5:
6:
7:
public Vector<T> sort(Vector<T> list, Comparator<T> comp, Mode mode) {
        if(____comp.compare(a,b)_<_comp.compare( a,b)||__comp.compare(a,b)_>___comp.compare( a,b)___________)
            return null;




Bin mir nicht so sicher ob das so funktionieren kann großes Grinsen
as_string

Nein, das compare hat immer zwei Argumente, also muss a und b übergeben werden.
Compare hat drei verschiedene Rückgabewerte. Entweder -1, 0 oder +1. Welcher Wert steht für was?
Angenommen wir wollen aufsteigend sortieren. Bei welchen Werten von compare wäre die Reihenfolge schon in Ordnung und es müsste nicht umsortiert werden, bei welchen müsste umsortiert werden?

Gruß
Marco
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.