Hallo Leute,
ich sitze hier an einem Stück-Code, den ich eigentlich nur zum Testen brauche und er funktioniert nicht richtig. Vielleicht habe ich es viel zu kompliziert gemacht?
Ich habe folgendes Problem:
zwei Maps sind zu vergleichen:
Map<String, Map <String, String>> _attachments (ist ein Member der Klasse OntologyMap) und Map <String, Map <String, String>> map (die als Parameter der methode equals übergeben wird).
Es gibt ein Aber: ein Eintrag in Map<String, String> mit einem bestimmten Key wird ignoriert.
Unten sieht ihr die Methode equals.. Sie funktioniert nicht richtig, das heißt sie liefert true sogar wenn einige Einträge in Map <String, String> nicht übereinstimmen. Sieht ihr den logischen Fehler? Geht es sowas einfacher?
Ist das überhaupt angebracht solche Methoden zum Testen zu verwenden?
Bitte um Hilfe.
Gruß, madlena
ich sitze hier an einem Stück-Code, den ich eigentlich nur zum Testen brauche und er funktioniert nicht richtig. Vielleicht habe ich es viel zu kompliziert gemacht?
Ich habe folgendes Problem:
zwei Maps sind zu vergleichen:
Map<String, Map <String, String>> _attachments (ist ein Member der Klasse OntologyMap) und Map <String, Map <String, String>> map (die als Parameter der methode equals übergeben wird).
Es gibt ein Aber: ein Eintrag in Map<String, String> mit einem bestimmten Key wird ignoriert.
Unten sieht ihr die Methode equals.. Sie funktioniert nicht richtig, das heißt sie liefert true sogar wenn einige Einträge in Map <String, String> nicht übereinstimmen. Sieht ihr den logischen Fehler? Geht es sowas einfacher?
Ist das überhaupt angebracht solche Methoden zum Testen zu verwenden?
Java:
public boolean equals (OntologyMap map) {
boolean eq = false;
if (_attachments.size() == map.getAttachments().size()) {
for (Entry <String, Map <String, String>> attm : _attachments.entrySet()) {
String id = attm.getKey();
Map <String, String> attributes = attm.getValue();
if (map.containsAttachment(id)) {
Map <String, String> otherAttributes = map.getAttachment(id);
if (attributes.size() == otherAttributes.size()) {
for (Entry <String, String> attr : attributes.entrySet()) {
String attrName = attr.getKey();
String attrValue = attr.getValue();
// content is not checked
if (!attrName.startsWith(Constants.ATTACHMENT_CONTENT_NAME) &&
otherAttributes.containsKey(attrName)) {
String otherAttrValue = otherAttributes.get(attrName);
if (attrValue.equals(otherAttrValue)) {
eq = true;
} // if the value of this attribute is equal the name of the other attribute
else {
eq = false;
}
} // if other attributes contain an attribute with this name
else {
eq = false;
}
} // for each attribute
} // if size of the attributes map equals size of other attributes map
else {
eq = false;
}
} // if the map to compare contains an attachment with this id
else {
eq = false;
}
} // for each entry in the map
} // if size of this map and of the map with which to compare is equals
return eq;
} // equals
Bitte um Hilfe.
Gruß, madlena