eigenes Equal mit IndexOf()

port45

Mitglied
Hallo zusammen,

habe hier ein kleines Problem und hoffe jemand kann mal drüber schauen : /


Safeequals soll ein true zurück geben, wenn a und b gleich sind oder beide null sind.

Java:
private static boolean safeEquals(Object a, Object b) {
      
    	if(a.equals(b) || a.equals(null) && b.equals(null))
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}

IndexOf soll den Index von den gesuchten Object zurückgeben:
Java:
 public int indexOf(T gesucht) {
       
    	for(int i = 0;i<data.length;i++)
    	{
    		if(safeEquals(gesucht,data[i])==true)
    		{
    			return i;
    		}
    		
    	}
    	//data[size++] = null;
    	return NOT_FOUND;
 

JaxxTe

Mitglied
Und was für ein Problem gibt es hier?

Ich rate mal: falls die Objects null sind wirst du in eine NullPointerException laufen, da du equals auf den Objekten rufst.

Lösung: Teste die beiden Objekte zuerst auf null (nicht mit equals) und überprüfe danach ob sie gleich sind.
 
Zuletzt bearbeitet:

port45

Mitglied
Hab ich gerade versucht, aber hilft nicht :/
hab einmal mit == auf null geprüft und dann mit equals auf gleichheit.
Einmal mit einem if und dann nochmal mit zwei

Also Fehlermeldung bekomme ich nicht.
Habe so eine Testklasse an der ich mich halten muss.
Aber meiner Meinung nach stimmt das alles xD

Das sind noch die Fehler bei mir.
Aber Test ob Equals genutzt werden habe ich doch gemacht : (


Java:
public void testObEqualsGenutzt() {
        a.add("xyz");
        a.add("abcde");
        a.add("abd");
    	assertEquals( "== ist verkehrt, equals() benutzen!",
    			1, a.indexOf(new String("abcde")));
    }


Java:
 public void testIndexOfNull() {
        fuelleA();
        assertEquals("null ist nicht vorhanden", -1, a.indexOf(null));
        a.add(null);
        assertEquals("jetzt ist null vorhanden", 4, a.indexOf(null));
    }

Java:
    public void testIndexOf() {
    	fuelleA();
    	assertEquals("a wird richtig gefunden", 0, a.indexOf("a"));
    	assertEquals("c wird richtig gefunden", 2, a.indexOf("c"));
    	assertEquals("x ist nicht vorhanden", -1, a.indexOf("x"));
 
Zuletzt bearbeitet:

Natac

Bekanntes Mitglied
Hab ich gerade versucht, aber hilft nicht :/
Sicher? Du hast diesen Code geschrieben und willst sagen, dass er bei dir nicht funktioniert?

Java:
boolean safeEquals(Object a, Object b){
  if(a == null && b == null){
    return true; // beide null -> TRUE
  } 
  else if(a == null){
    return false; // a ist null, b nicht -> FALSE
  } 
  else {
    return a.equals(b); // a ist nicht null -> Test mit equals
  }
}

Und dir ist bewusst, dass so ein Ausdruck:
Code:
a.equals(null)
IMMER false liefert? So steht es in der Dokumentation von equals.:rtfm:
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

Safeequals soll ein true zurück geben, wenn a und b gleich sind oder beide null sind.
Java:
if(a.equals(b) || a.equals(null) && b.equals(null))

Ich denke mal, dass Du hier den hinteren Teil klammern musst, da andernfalls IMMER ("b" == null) sein müsste !
Java:
if( a.equals(b) || (a.equals(null) && b.equals(null)) )

ergo: lieber einmal zuviel als einmal zuwenig klammern :)

Gruß
Klaus
 
Zuletzt bearbeitet:

port45

Mitglied
Java:
if(a == null)
    	{
    		if(b == null)
    		{
    			return true;
    		}
    		return false;
    	
    	
    		
    	}
    	return a.equals(b);

war die Lösung für das Programm.
Danke für eure Antworten.
Fehler kam hauptsächlich durch einen Folgefehler in einer anderen Methode XD
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Mein erstes eigenes Projekt - Aufbau und Strukturierung Java Basics - Anfänger-Themen 6
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
G eigenes package Java Basics - Anfänger-Themen 3
Anfänger2011 Eigenes Betriebssystem Java Basics - Anfänger-Themen 6
P Eigenes Fenster erstellen Java Basics - Anfänger-Themen 5
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
L eigenes Steuerelement Zeitstrahl Java Basics - Anfänger-Themen 3
F Eigenes Package - Variable exportieren Java Basics - Anfänger-Themen 11
GianaSisters Methoden eigenes TableModel -> removeRow möglich machen Java Basics - Anfänger-Themen 30
D Eigenes Event beim TimeOut Java Basics - Anfänger-Themen 2
C Eigenes Konsolenfenster Java Basics - Anfänger-Themen 3
D Packages verwenden und in eigenes Projekt integrieren Java Basics - Anfänger-Themen 3
B Eigenes Package Java Basics - Anfänger-Themen 6
S Eigenes Objekt temporär verändern? (Clone)? Java Basics - Anfänger-Themen 12
M Eigenes Programm Flaechenrechner Java Basics - Anfänger-Themen 8
L Eigenes List Model für Icon + String -> Speicherhungrig? Java Basics - Anfänger-Themen 8
X Eigenes Kontosystem vervollständigen Java Basics - Anfänger-Themen 11
Developer_X eigenes ImageIcon schreiben Java Basics - Anfänger-Themen 11
Q Eigenes Event feuern Java Basics - Anfänger-Themen 5
S Eigenes Kontextmenü Java Basics - Anfänger-Themen 3
I jar in eigenes Programm unwandeln (OSX und Win) Java Basics - Anfänger-Themen 4
R Eigenes Pair Object Java Basics - Anfänger-Themen 2
C eigenes TableModel Java Basics - Anfänger-Themen 2
data89 In Java ein eigenes Lexikon erstellen? Doch wie? Java Basics - Anfänger-Themen 5
GilbertGrape Eigenes Event? Java Basics - Anfänger-Themen 2
K javadoc eigenes doclet in console starten Java Basics - Anfänger-Themen 3
B Eigenes Event schreiben Java Basics - Anfänger-Themen 7
M Eigenes Ellipse2D-Objekt Java Basics - Anfänger-Themen 5
G Eigenes Fenster Java Basics - Anfänger-Themen 51
N Eigenes Icon in InputDialog geht nicht! Java Basics - Anfänger-Themen 7
J Eigenes Symbol für Java Programm Java Basics - Anfänger-Themen 3
M Eigenes Seitenformat definieren Java Basics - Anfänger-Themen 2
Q Eigenes TableModel - NullPointerException Java Basics - Anfänger-Themen 6
F eigenes Package Java Basics - Anfänger-Themen 2
B Package/Klasse in ein eigenes Projekt einbinden? aber wie? Java Basics - Anfänger-Themen 6
T Equal Methode implementieren Java Basics - Anfänger-Themen 22
V Methoden Problem mit equal Java Basics - Anfänger-Themen 2
K variabel.equal("text") verneinen Java Basics - Anfänger-Themen 2
L String equal funktioniert nicht ? Java Basics - Anfänger-Themen 3
G Vector, equal & Casts Java Basics - Anfänger-Themen 5
W mehrere Strings vergleichen, (kein equal-Problem) Java Basics - Anfänger-Themen 3
W Gegenteil von Equal Java Basics - Anfänger-Themen 6
S Is not equal: Eigenheit von Java? Java Basics - Anfänger-Themen 10
X trotz gleicher variablen nicht equal Java Basics - Anfänger-Themen 5
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
M Erklärung: Int IndexOf (String s) Java Basics - Anfänger-Themen 3
P Schleife für insert() und delete() im StringBuilder in Verbindung mit indexOf() Java Basics - Anfänger-Themen 7
S fraglicher indexOf Wert Java Basics - Anfänger-Themen 2
X Erste Schritte Frage zu indexOf und startsWith Java Basics - Anfänger-Themen 6
B Arrays indexOf Java Basics - Anfänger-Themen 5
R indexOf wirft NullPointer Exception Java Basics - Anfänger-Themen 2
H Methoden indexOf Java Basics - Anfänger-Themen 11
A contains bzw. indexOf liefert keine Treffer? Java Basics - Anfänger-Themen 3
L String.indexOf -> Backslash Java Basics - Anfänger-Themen 3
B String Methoden ! substring,indexOf,length... :( Java Basics - Anfänger-Themen 5
S LinkedList indexOf() - geht des irgendwie schneller? Java Basics - Anfänger-Themen 23
B ArrayList<Double>.indexOf(Double)? Java Basics - Anfänger-Themen 2
K indexOf selbst rekursiv definieren Java Basics - Anfänger-Themen 4
StrikeTom ArrayList + IndexOf Java Basics - Anfänger-Themen 3
M IndexOf LinkedList Java Basics - Anfänger-Themen 2
S Nachbau der indexOf Methode Java Basics - Anfänger-Themen 28
G IndexOf Methode Java Basics - Anfänger-Themen 3
F indexOf weiter lesen Java Basics - Anfänger-Themen 14
G indexOf() Probleme Java Basics - Anfänger-Themen 8
B Char kommt 2 mal im Wort vor (indexOf) Java Basics - Anfänger-Themen 5
S indexOf(",") ? zeichenabfrage eines Strings Java Basics - Anfänger-Themen 7
G indexOf() - was bedeutet -1 ? Java Basics - Anfänger-Themen 27
J Indexof Java Basics - Anfänger-Themen 7
K Probleme mit indexOf() Java Basics - Anfänger-Themen 3
S Frage zu String.indexOf(String) Java Basics - Anfänger-Themen 22

Ähnliche Java Themen

Neue Themen


Oben