arrays vergleichen

Hallo, ich bin totaler Java Anfänger,
ich komme grad nicht weiter und zwar soll ich zwei arrays miteinander vergleichen (den Inahalt)
Java:
public class GrosseZahl {


byte[] ziffern;											// Objekvariable deklariert


public void setZiffern(byte[] ziffern){					//Setter-Methode
	this.ziffern = ziffern;
	}

byte[] getZiffern(){									//Getter-Methode
	return ziffern;
	}


public static boolean equals(byte[] ziffern, byte[] andereZahl)				
{		
		  if (ziffern == null && andereZahl == null){  
		    return true;  
		  }  
		  if (ziffern == null || andereZahl == null){  
		    return false;  
		  }  
		  if (ziffern.length != andereZahl.length){  
		    return false;  
		  }  
		  for (int i=0; i<ziffern.length; i++){  
		    if (ziffern[i] != andereZahl[i]){  
		      return false;  
		    }  
		  }  
		  return true;  
		}   
   
}



blic class GroesseZahlTester {

	public static void main(String[] args) {
		

		GrosseZahl zahl2 = new GrosseZahl("000003450004");
		GrosseZahl zahl3 = new GrosseZahl("000003450004");
		
		System.out.println(zahl2.equals(zahl3));


Ich bin mir ziemlich sicher, dass der Fehler in der Übergabe liegt, aber ich kriege es nicht richtig hin, hat jmd vielleicht eine idee?
Vielen Dank im Voraus für eure Hilfe
 

ursteiner

Mitglied
das sollte funktionieren:

Code:
public class GrosseZahl {

	private byte[] ziffern;                                         // Objekvariable deklariert

	public void setZiffern(byte[] ziffern) {                 // Setter-Methode
		this.ziffern = ziffern;
	}

	public GrosseZahl(String input) {
		this.ziffern = input.getBytes();
	}

	public byte[] getZiffern() {                                    // Getter-Methode
		return ziffern;
	}

	public boolean equals(GrosseZahl andereZahl) {
		if (ziffern == null && andereZahl.ziffern == null) {
			return true;
		}
		if (ziffern == null || andereZahl == null) {
			return false;
		}
		if (ziffern.length != andereZahl.ziffern.length) {
			return false;
		}
		for (int i = 0; i < ziffern.length; i++) {
			if (ziffern[i] != andereZahl.ziffern[i]) {
				return false;
			}
		}
		return true;
	}

	public static void main(String[] args) {

		GrosseZahl zahl2 = new GrosseZahl("000003450004");
		GrosseZahl zahl3 = new GrosseZahl("000003450004");

		System.out.println(zahl2.equals(zahl3));
	}
}
 
Vielen Dank, es funktioniert auch alleine, aber wenn ich es in mein komplettes Programm schreibe funktioniert es nicht...

Java:
public class GrosseZahl {

byte[] ziffern;											// Objekvariable deklariert

public void setZiffern(byte[] ziffern){					//Setter-Methode
	this.ziffern = ziffern;
	}

public GrosseZahl(String input) {
	this.ziffern = input.getBytes();
	}

byte[] getZiffern(){									//Getter-Methode
	return ziffern;
	}
	   
	 

public GrosseZahl(String zahl) {
	zahl = zahl.replaceFirst("0*", "");						 // entfernt führende Nullen
	byte[] ziffern = new byte[zahl.length()];				
    for(int i = 0; i < zahl.length(); i++){ 					// Schleife zum druchlaufen der Array Felder
    	char c = zahl.charAt(i);
    	ziffern[i] = (byte) (c - '0'); 						//schreibt die einzelnen Zahlen jeweils in ein array Feld
    	this.ziffern=ziffern;
    	
    	}	      
    
 }


public String toString(){
StringBuilder s = new StringBuilder();
for(byte value: ziffern){
    s.append(value);										 // übergibt die Zahlen des Array in den String
}
return s.toString();								// übergibt den String "s" an die Methode "to.String" zurück
}


public static boolean equals(byte[] ziffern, byte[] andereZahl)				
{		
		  if (ziffern == null && andereZahl == null){  
		    return true;  
		  }  
		  if (ziffern == null || andereZahl == null){  
		    return false;  
		  }  
		  if (ziffern.length != andereZahl.length){  
		    return false;  
		  }  
		  for (int i=0; i<ziffern.length; i++){  
		    if (ziffern[i] != andereZahl[i]){  
		      return false;  
		    }  
	  }  
 return true;  
		}    
}





public class GroesseZahlTester {

	public static void main(String[] args) {
		
		GrosseZahl zahl1 = new GrosseZahl("00000345000467");
		System.out.println(zahl1);					
		
		
		//equals-Methode testen
		GrosseZahl zahl2 = new GrosseZahl("000003450004");
		GrosseZahl zahl3 = new GrosseZahl("000003450004");
		
		System.out.println(zahl2.equals(zahl3));

Wäre für Hilfe sehr dankbar =)
 

knilch

Bekanntes Mitglied
Hi,
Erst mal eine Anmerkung:
Du hast in der Klasse GrosseZahl den Konstruktor: public GrosseZahl(String zahl) {...} und public GrosseZahl(String input){...}.
Das geht so nicht. Beim Konstruktor (gilt auch für Methoden) dürfen die Argument Typen und Anzahl nie gleich sein:
Java:
public GrosseZahl(String input){...}
und
Java:
public GrosseZahl(String zahl) {...}
das darf nicht vorkommen!
Java:
public GrosseZahl(String input){...}
und
Java:
public GrosseZahl(String zahl, String zahl2) {...}
das geht.

Dann bei der main- Methode:
mit dem was du geschrieben hast, vergleichst du die Instanzen zahl2 und zahl3.
Java:
System.out.println(zahl2.equals(zahl3));

Dies ist nicht das selbe, als das was du wahrscheinlich möchtest. Wenn du einen Vergleich mit der equals Methode machten willst, du du geschrieben hast, dann musst du das so machen:

Java:
System.out.println(equals(zahl2.getZiffern(), zahl3.getZiffern()));

Denn zahl2.equals(zahl3) macht einen Vergleich der instanzen. Und dieser darf im Normalfall nicht true zurückgeben, ausser du überschreibst die equals Methode in der Klasse GrosseZahl (und auch hashCode)
Du hast in deiner Klasse GrosseZahl die Methode
Java:
public static boolean equals(byte[] ziffern, byte[] andereZahl) {...}
geschrieben. Diese vergleicht die Bytes von den Zahlen.
Diese ist aber nicht für den Vergleich von Instanzen anwendbar.
Dazu muss die equals- Methode ähnlich wie die von Ursteiner implemenitiert werden.
 
Zuletzt bearbeitet:
okay danke für die Hilfe :)
Gibt es auch eine Möglichkeit sie zu vergleichen mit dem Aufruf den ich verwendet habe?
Java:
System.out.println(zahl2.equals(zahl3));

Wenn ja dann müsste ich meine Methode bestimmt auch veränderen oder?
 

knilch

Bekanntes Mitglied
Ja, das ist richtig,
Dann müsstest du equals überschreiben (so wie ursteiner es gezeigt hat)
Java:
	public boolean equals(GrosseZahl andereZahl) {
		if (ziffern == null && andereZahl.ziffern == null) {
			return true;
		}
		if (ziffern == null || andereZahl == null) {
			return false;
		}
		if (ziffern.length != andereZahl.ziffern.length) {
			return false;
		}
		for (int i = 0; i < ziffern.length; i++) {
			if (ziffern[i] != andereZahl.ziffern[i]) {
				return false;
			}
		}
		return true;
	}
(ich habs aber nicht überprüft...)
Damit funktioniert der Vergleich: zahl2.equals(zahl3)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
A Methoden Char-Arrays auf aufeinanderfolgende Elemente vergleichen! Java Basics - Anfänger-Themen 7
J 2 Arrays vergleichen (Unterschiedliche Längen) Java Basics - Anfänger-Themen 42
Shizmo Arrays miteinander vergleichen Java Basics - Anfänger-Themen 22
D Erste Schritte Arrays vergleichen Java Basics - Anfänger-Themen 1
R 2 mit Arrays bestückte LinkedLists durchsuchen/vergleichen Java Basics - Anfänger-Themen 3
1 Zeichenfolgen in Arrays vergleichen Java Basics - Anfänger-Themen 8
1 Elemente von 2 Arrays vergleichen Java Basics - Anfänger-Themen 12
D Arrays vergleichen Java Basics - Anfänger-Themen 4
D Methoden Arrays vergleichen Java Basics - Anfänger-Themen 10
N Arrays miteinander vergleichen Java Basics - Anfänger-Themen 11
J 2 Arrays vergleichen Java Basics - Anfänger-Themen 16
J Inhalt eines Arrays vergleichen? Java Basics - Anfänger-Themen 8
Fab1 char Arrays vergleichen Java Basics - Anfänger-Themen 4
R Erste Schritte Arrays vergleichen und boolean Java Basics - Anfänger-Themen 5
E Elemente innerhalb eines Arrays vergleichen Java Basics - Anfänger-Themen 7
J Dimensionen zweier Arrays vergleichen Java Basics - Anfänger-Themen 4
M 2 Arrays mit komplexen Datentyp vergleichen Java Basics - Anfänger-Themen 8
C Arrays vergleichen und Fehlinhalt ausgeben Java Basics - Anfänger-Themen 5
J Zeilen eines Arrays vergleichen Java Basics - Anfänger-Themen 2
N Arrays als Mengen vergleichen Java Basics - Anfänger-Themen 5
J arrays vergleichen Java Basics - Anfänger-Themen 3
T Arrays vergleichen Java Basics - Anfänger-Themen 5
V Inhalt von arrays vergleichen Java Basics - Anfänger-Themen 6
R String Arrays Inhalte vergleichen Java Basics - Anfänger-Themen 4
M Arrays vergleichen Java Basics - Anfänger-Themen 2
H Mehrdimensionale Arrays vergleichen Java Basics - Anfänger-Themen 6
P arrays vergleichen geht nicht? Java Basics - Anfänger-Themen 3
B Vergleichen von Arrays Java Basics - Anfänger-Themen 3
D Arrays vergleichen (oder wie man das auch nennen will). Java Basics - Anfänger-Themen 13
J Mehrdimensionale Arrays inhaltlich vergleichen. Java Basics - Anfänger-Themen 3
M Felder innerhalb eines Arrays vergleichen Java Basics - Anfänger-Themen 2
N Mischen und vergleichen von Arrays Java Basics - Anfänger-Themen 6
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste und Arrays Java Basics - Anfänger-Themen 12
N mehrdimensionale arrays Java Basics - Anfänger-Themen 12
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
J Mehrdimensionale Arrays Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
M Arrays Java Basics - Anfänger-Themen 3
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
Ostkreuz Summieren von Arrays Java Basics - Anfänger-Themen 4
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
E Zinsrechnung mithilfe von Arrays Java Basics - Anfänger-Themen 12
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
H Arrays befüllen Java Basics - Anfänger-Themen 43
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
D Arrays Java Basics - Anfänger-Themen 9
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
N Arrays Java Basics - Anfänger-Themen 5
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
A Arrays aufsummieren Java Basics - Anfänger-Themen 11
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
S Arrays aneinanderketten Java Basics - Anfänger-Themen 20
Sinan Arrays auflisten ohne Wiederholung Java Basics - Anfänger-Themen 28
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
D Verschlüsslungsaufgabe / Arrays Java Basics - Anfänger-Themen 6
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
J Methoden Mehrdimensionale Arrays übereinander legen Java Basics - Anfänger-Themen 5
D Verwirrung bei Streams aus primitiven Arrays Java Basics - Anfänger-Themen 2
P Arrays mit verschiedenen Längen miteinander dividieren. Java Basics - Anfänger-Themen 1
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Zeppi Arrays[i] Java Basics - Anfänger-Themen 7
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J B-Sprache mit Arrays ausführen Java Basics - Anfänger-Themen 18
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
K Sudoku mit 2D Arrays Java Basics - Anfänger-Themen 19
T Vertikales Histogramm mit Arrays Java Basics - Anfänger-Themen 3
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben