Vergleichen von Listeneinträgen

Status
Nicht offen für weitere Antworten.

Bierhumpen

Bekanntes Mitglied
Hi,
letzte frage für heute... wie kann man listeneintäge miteinander vergleichen.
also mit <= oder >= gehts nicht. Darum gehts:

Zum Abschluß der Aufgaben spielen Sie nun Lotto: Schreiben Sie dazu eine Funktion
static void playIt(). Diese erzeugt mit den Funktionen aus a) und b) zwei Listen mit
jeweils 6 paarweise verschiedenen Zufallszahlen zwischen 1 und 49: Die Liste der gezogenen
Zahlen und die Liste der angekreuzten Zahlen. Vergleichen Sie die Listen auf gleiche Ele-
mente. Nutzen Sie dabei aus, dass die Listen sortiert sind! Erzeugen Sie eine neue Liste,
die alle Treffer speichert. Geben Sie die Zahl der ” Richtigen“ und die Zahlenwerte dieser
Treffer in geeigneter Weise auf der Standardausgabe aus.



habt ihr vielleicht nen kleinen gedankenanstoß für mich?! und wie kann man die sortierung der Listen ausnutzen?!
 

Bierhumpen

Bekanntes Mitglied
okay.. hast mich vielleicht nicht ganz verstanden... ich habe mir das schon angeschaut. aber ich habe meinen code so weit:

Code:
    static void playIt(){
        
        Node gezogen = convertAndSort(constructArray49(6));
        Node angekreuzt = convertAndSort(constructArray49(6));
        Node gleicheWerte = null;
        System.out.print("Gezogen wurden die Zahlen: ");
        printList(gezogen);
        System.out.print("Ihre Zufallszahlen lauten: ");
        printList(angekreuzt);
        boolean weiterDurchlaufen = true;
        // das folgende scheint blödsinn zu sein.. klappt nämlich nciht
        while (weiterDurchlaufen == true){
            if (gezogen.data == null){
                weiterDurchlaufen = false;
            }
            else if (gezogen.data == angekreuzt.data){
                gleicheWerte = new Node (gezogen.data, gleicheWerte);
                gezogen = gezogen.link;
            }
            else{
                angekreuzt = angekreuzt.link;
            }
        }
        
        printList(gleicheWerte);
        
    }

brauche nur einen kleinen tipp
 
S

SlaterB

Gast
die beiden Listen beginnen irgendwo bei einem Node,
von den Nodes kannst du dir doch irgendwie die Werte anschauen und mit <=> vergleichen,
das musst du doch nicht unbedingt für die Nodes selber machen (obwohl auch möglich)

etwa so


while .. {
wert aus Liste 1 bestimmen
wert aus Liste 2 bestimmen
vergleichen und evtl. Treffen notieren
in einer oder beiden Listen einen Schritt weitergehen
}

dem kommt
> // das folgende scheint blödsinn zu sein.. klappt nämlich nciht
schon recht nahe, musst du halt nur zum Laufen bringen,

wie würde es dir denn helfen wenn du statt der Werte gleich die Nodes vergleichen könntest?
(um das tun zu können: Operation node.equals(Object other) überschreiben und darin angeben wann ein Node kleiner ist als der andere -> dort dann eben die Werte anschauen)

edit
Interface Comparable + Operation compareTo wären wohl auch hilfreich
 

Bierhumpen

Bekanntes Mitglied
okay...

kleines beispiel

D:\Eigene Dateien\Uni\Informatik\GP1\Programme\lotto\Lotto.java:75: operator < cannot be applied to java.lang.Object,java.lang.Object

else if(gezogen.data < angekreuzt.data){

^

ist ein Integer Object
 
S

SlaterB

Gast
nun gut, eine weitere von tausenden Fragen die in jedem Java-Buch lang und breit erklärt werden:
Objekte vergleicht man mit equals (nur auf Gleichheit)
oder compareTo(Object other) falls sie das Interface Comparable implementieren (Integer tut dies),



if(((Integer) gezogen.data).compareTo(angekreuzt.data) < 0 )


oder

int a = ((Integer) gezogen.data).intValue();
int b = ((Integer) angekreuzt.data).intValue();

if (a < b)
 

Bierhumpen

Bekanntes Mitglied
ne, also

die beiden ("gezogen","angekreuzt") sind bereits Integer.
(gezogen.data).compareTo(angekreuzt.data) < 0 heisst dann dass gezogen größer oder kleiner ist?!
 

Bierhumpen

Bekanntes Mitglied
der sagt dann auch er würde compareTo nicht kennen....
D:\Eigene Dateien\Uni\Informatik\GP1\Programme\lotto\Lotto.java:76: cannot find symbol

symbol : method compareTo(java.lang.Object)

location: class java.lang.Object

else if(gezogen.data.compareTo(angekreuzt.data) < 0 ){

^
 

Bierhumpen

Bekanntes Mitglied
okay den algorithmus habe ich..
aber da compareTo bei mir nicht geht und da ich nicht weiss wie ich die werte in den nodes vergleich hoffe ich auf eure hilfe..

also
wenn gezogen = angekreuzt dann gehe beide einen rauf
wenn gezogen < angekreuzt dann gezogen einen rauf
wenn gezogen > angekreuzt dann angekreuzt einen rauf.

so wie kann ich das jetzt machen
compareTo geht nicht (obwohl die java.lang.* ja standart ist) und mit equals kann man ja nur schauen obs gleich ist. .intValue(); funktioniert leider auch nicht, kA warum aber geht nicht. Was nu?!
 
S

SlaterB

Gast
hmm,
ich schreibe explizit dass du

if (((Integer) gezogen.data).compareTo(angekreuzt.data) < 0 )

verwenden sollst, und du nimmst dann

if (gezogen.data.compareTo(angekreuzt.data) < 0 )

und wunderst dich dass es nicht geht? ;)
also irgendwann hört auch bei mir die Hilfsbereitschaft auf,

das geht nicht weil gezogen.data für den Compiler in diesem Moment ein Object ist,
der weiß doch nicht dass das ein Integer ist,
also musst du erst auf Integer casten indem du (Integer) davorschreibst

Achtung:
(Integer) gezogen.data.compareTo reicht nicht, es muss schon
((Integer) gezogen.data).compareTo sein


genauso bei intValue()
int a = ((Integer) gezogen.data).intValue();

geht ganz bestimmt oder es gibt ne ClassCastException wenn es kein Integer-Objekt ist


------------

> (gezogen.data).compareTo(angekreuzt.data) < 0 heisst dann dass gezogen größer oder kleiner ist?!

woher glabust du dass ich das wissen könnte?
wenn dann müsste ich ja auch irgendwannmal in ein Buch oder in die Klassenbeschreibung geschaut haben,
da steht das alles sehr schön erklär

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Integer.htmlt
 

Bierhumpen

Bekanntes Mitglied
D:\Eigene Dateien\Uni\Informatik\GP1\Programme\lotto\Lotto.java:90: compareTo(java.lang.Integer) in java.lang.Integer cannot be applied to (java.lang.Object)

else if (((Integer) gezogen.data).compareTo(angekreuzt.data) < 0 ){

^
 
S

SlaterB

Gast
hmm, in Java5 gehts das wohl nicht mehr, dann ist auch mein Link auf die veraltete API wohl wenig hilfreich

warum kommst du nicht auf die Idee mal

if (((Integer) gezogen.data).compareTo((Integer) angekreuzt.data) < 0 )

einzutippen?

ich verzweifle hier noch ;)
 

Bierhumpen

Bekanntes Mitglied
okay..

ich habs so gemacht:
Code:
    static void playIt(){
        
        Node gezogen = convertAndSort(constructArray49(6));
        Node angekreuzt = convertAndSort(constructArray49(6));
        Node gleicheWerte = null;
        System.out.print("Gezogen wurden die Zahlen: ");
        printList(gezogen);
        System.out.print("Ihre Zufallszahlen lauten: ");
        printList(angekreuzt);
        
        int a = ((Integer) gezogen.data).intValue();
        int b = ((Integer) angekreuzt.data).intValue();
        
        while ((gezogen != null) & (angekreuzt != null)){
            if (a==b){
                gleicheWerte = new Node(gezogen.data, gleicheWerte);
                gezogen = gezogen.link;
                angekreuzt = angekreuzt.link;
            }
            else if (a<b){
                gezogen = gezogen.link;
            }
            else if (a>b){
                angekreuzt = angekreuzt.link;
            }
        }        
        
        System.out.println("Folgende Zahlen sind identisch:");
        printList(gleicheWerte);
        
    }

Er meckert zwar nicht mehr *danke*, aber es funktionniert nicht. ergibt die gleichen werte nicht aus. irgendwas stimmt da nicht. sorry wenn ich ein bischen schwer von verstand bin... sitze aber seit 10 Uhr an dieser aufgabe... ich kann einfach nicht mehr....
 

Bierhumpen

Bekanntes Mitglied
OH OH ES GEHT ;) oh.... aber er gibt die liste verkehrtherum aus..
aber das ist ja dass geringste problem

DANKE DANKE DANKE! MEIN ABEND IST GERETTET!!!
 
S

SlaterB

Gast
also in der geposteten Version wird nur einmal am Anfang
int a = ((Integer) gezogen.data).intValue();
int b = ((Integer) angekreuzt.data).intValue();

ausgeführt und danach die Schleife bis zum Ende durchaufen ohne dass sich a oder b nochmal ändert
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
J Array.list vergleichen Java Basics - Anfänger-Themen 1
M 3 Zahlen miteinander vergleichen Java Basics - Anfänger-Themen 18
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
W LocalDate vergleichen mit Equals? Java Basics - Anfänger-Themen 7
S mehrere TreeSets so speichern, dass man sie miteinander vergleichen kann Java Basics - Anfänger-Themen 1
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
S String mit Int input vergleichen Java Basics - Anfänger-Themen 5
S Den Minimumberechnen 2 codes vergleichen Java Basics - Anfänger-Themen 4
S Chars vergleichen ohne Betrachtung der Groß und Kleinschreibung Java Basics - Anfänger-Themen 7
S Aktuell beste Methode um zwei Bilder zu vergleichen..? Java Basics - Anfänger-Themen 1
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
districon Vergleichen von Objekten Java Basics - Anfänger-Themen 20
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
M Strings vergleichen Java Basics - Anfänger-Themen 10
J Zufallszahlen generieren und Werte vergleichen Java Basics - Anfänger-Themen 3
Stephan_kl Reihenwert-Berechnung, Ergebnis mit vorherigem Ergebnis vergleichen Java Basics - Anfänger-Themen 11
J Zwei Objekte vergleichen Java Basics - Anfänger-Themen 8
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
O String mit Character vergleichen Java Basics - Anfänger-Themen 3
S 2 Strings mit Equals vergleichen Java Basics - Anfänger-Themen 11
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
M Objekte mittels equals vergleichen Java Basics - Anfänger-Themen 14
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
D Vergleichen von Strings Java Basics - Anfänger-Themen 6
M Objekte miteinander vergleichen Java Basics - Anfänger-Themen 18
M Matrix Elemente vergleichen Java Basics - Anfänger-Themen 11
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
R String vergleichen Java Basics - Anfänger-Themen 59
S Vergleichen ob der Integer der benutzt eingeben werden soll überhaupt ein int ist Java Basics - Anfänger-Themen 1
C System.in.read() Boolsche Werte vergleichen Java Basics - Anfänger-Themen 8
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
J Strings untereinander in einer Liste vergleichen Java Basics - Anfänger-Themen 18
E Zahlen von einem Array mit zahlen von zweitem Array vergleichen Java Basics - Anfänger-Themen 27
A Suffix vergleichen Java Basics - Anfänger-Themen 2
L Erste Schritte Elemente zwei Schlangen vergleichen Java Basics - Anfänger-Themen 14
PaperHat Objekte in Array vergleichen Java Basics - Anfänger-Themen 9
F Input/Output 2 Textdateien mit einander vergleichen Java Basics - Anfänger-Themen 11
N Zwei Strings mit "==" vergleichen warum TRUE Java Basics - Anfänger-Themen 2
M String vergleichen Java Basics - Anfänger-Themen 5
T Datentypen Kann Java 2 verschiedene Datentypen vergleichen? Java Basics - Anfänger-Themen 2
S Array, Geburtsdatum, Vergleichen Java Basics - Anfänger-Themen 28
F JList Elemente mit Strings vergleichen Java Basics - Anfänger-Themen 12
L Variablen Versionsnummern vergleichen Java Basics - Anfänger-Themen 5
N Methoden int[]'s vergleichen Java Basics - Anfänger-Themen 4
N Methoden HashMap interne Werte miteinander vergleichen Java Basics - Anfänger-Themen 7
T JPasswordFielder vergleichen Java Basics - Anfänger-Themen 16
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
M Objekt mit Hashmap vergleichen Java Basics - Anfänger-Themen 22
S Werte in Liste mit Nachfolger vergleichen Java Basics - Anfänger-Themen 5
M Erste Schritte Mehrere eingaben in einer Line vergleichen (if equals...) Java Basics - Anfänger-Themen 6
J Zahlensequenz mit einer anderen Sequenz vergleichen Java Basics - Anfänger-Themen 6
P String größer kleiner gleich vergleichen Java Basics - Anfänger-Themen 6
H Bubblesort-Zwei Integer auf Dekade vergleichen. Java Basics - Anfänger-Themen 6
J Methoden BinaryStrings vergleichen Java Basics - Anfänger-Themen 12
C arrey mit string vergleichen Java Basics - Anfänger-Themen 2
K Methoden Passwort Bestätigungsfeld mit Password vergleichen Java Basics - Anfänger-Themen 7
M Wortteile im String vergleichen Java Basics - Anfänger-Themen 2
L Rekursiv zwei Strings vergleichen Java Basics - Anfänger-Themen 3
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
C Große Zahlen vergleichen Java Basics - Anfänger-Themen 19
? Methoden Boolean Wert vergleichen und einlesen Java Basics - Anfänger-Themen 1
Korvinus Vergleichen von 2 csv-Dateien Java Basics - Anfänger-Themen 2
K Comparable - Objekte aus Array vergleichen und größtes auswählen Java Basics - Anfänger-Themen 1
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
JavaNewbie2.0 String vergleichen Java Basics - Anfänger-Themen 4
M 2 Stellen in einem Array vergleichen und bei übereinstimmen eine davon ersetzen Java Basics - Anfänger-Themen 1
A Methoden Char-Arrays auf aufeinanderfolgende Elemente vergleichen! Java Basics - Anfänger-Themen 7
R Objekte Vergleichen und Sortieren Java Basics - Anfänger-Themen 3
A Werte innerhalb von resultset vergleichen Java Basics - Anfänger-Themen 2
J Zwei String-Variabeln vergleichen Java Basics - Anfänger-Themen 5
I Meta Tags vergleichen mit Html Vorgabe Java Basics - Anfänger-Themen 8
T Java gleichfarbige Pixel vergleichen Java Basics - Anfänger-Themen 5
B Arrayinhalt mit String vergleichen Java Basics - Anfänger-Themen 6
J Objekttypen vergleichen und filtern Java Basics - Anfänger-Themen 6
J 2 Arrays vergleichen (Unterschiedliche Längen) Java Basics - Anfänger-Themen 42
K Textdateien vergleichen optimieren Java Basics - Anfänger-Themen 9
R Zeichen in String vergleichen Java Basics - Anfänger-Themen 75
P Erste Schritte Mehrdimensoniales Array vergleichen Java Basics - Anfänger-Themen 2
S Methoden Vergleichen von zwei Listen in der Geschwindigkeit von O(n+m) Java Basics - Anfänger-Themen 32
B ArrayList vergleichen Java Basics - Anfänger-Themen 18
J Generics Datentypen vergleichen Java Basics - Anfänger-Themen 16
OlafHD String in einer If-Anweisung Vergleichen Java Basics - Anfänger-Themen 2
D Variablen Variable char vergleichen Java Basics - Anfänger-Themen 5
F String vergleichen Java Basics - Anfänger-Themen 9
S LinkedList mit Input vergleichen. Java Basics - Anfänger-Themen 5
Shizmo Arrays miteinander vergleichen Java Basics - Anfänger-Themen 22
L Variablen aus TXT Datei auslesen und vergleichen. Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben