Hey Leute,
wir haben eine neue Aufgabe bekommen. Nämlich soll aus der Relation {(1,2), (2,3) (3,4)} und der Relation {(2,1), (4,6), (4,5)} folgendes gebildet werden: {(1,1), (1,2), (2,1), (2,2)}
Schön, da dachte ich mir ich durchlaufe beide Relationen. Aber wie ist das möglich? Wir haben folgendes bekommen:
und kringel soll eben das ganze berechnen. Nur komme ich irgendwie nicht klar, wie ich dort denn auf die erste und auf die zweite Relation überhaupt zugreifen kann. Das left und right steht wohl für x und y des jeweiligen Paares? Aber this.yyy und that.yyy verwirren mich etwas. Was hat das ganze zu bedeuten?
wir haben eine neue Aufgabe bekommen. Nämlich soll aus der Relation {(1,2), (2,3) (3,4)} und der Relation {(2,1), (4,6), (4,5)} folgendes gebildet werden: {(1,1), (1,2), (2,1), (2,2)}
Schön, da dachte ich mir ich durchlaufe beide Relationen. Aber wie ist das möglich? Wir haben folgendes bekommen:
Java:
public static class Paar implements Comparable<Paar> {
private int left;
private int right;
public Paar(int left, int right) {
this.left = left;
this.right = right;
}
public int getLeft() {
return left;
}
public int getRight() {
return right;
}
@Override
public boolean equals (Object o) {
if (o == null) { return false; }
if (this == o) { return true; }
if (! (o instanceof Paar)) {
return false;
}
Paar that = (Paar) o;
return this.left == that.left && this.right == that.right;
}
@Override
public int compareTo(Paar that) {
int v1 = this.left - that.left;
return v1 != 0 ? v1 : this.right - that.right;
}
@Override
public String toString() {
return "(" + left + ", " + right + ")";
}
}
private Set<Paar> pairSet = new TreeSet<>();
/**
* Erzeuge eine leere Relation.
* @param s
*/
public Relation() {
pairSet = new TreeSet<Paar>();
}
/**
* Erzeugt eine Relation aus einer Paarmenge.
* @param s die Paarmenge
*/
private Relation(Set<Paar> s) {
pairSet = new TreeSet<Paar>(s);
}
/**
* Erweitert eine Relation um ein weiteres Paar.
* @param p das Paar.
* @return die Relation selbst
* @post this ist um p erweitert
*/
public Relation add(Paar p) {
pairSet.add(p);
return this;
}
@Override
public String toString() {
return pairSet.toString();
}
@Override
public boolean equals(Object o) {
if (o == null) { return false; }
if (this == o) { return true; }
if (!(o instanceof Relation)) { return false; }
Relation that = (Relation) o;
return this.pairSet.equals(that.pairSet);
}
/**
* Berechnet die Verknuepfung dieser mit einer anderen Relation.
* @param that die andere Relation
* @return this kringel that
*/
public Relation kringel(Relation that) {
for (pairSet : getRight())
}
// TODO implementieren
return null;
}
und kringel soll eben das ganze berechnen. Nur komme ich irgendwie nicht klar, wie ich dort denn auf die erste und auf die zweite Relation überhaupt zugreifen kann. Das left und right steht wohl für x und y des jeweiligen Paares? Aber this.yyy und that.yyy verwirren mich etwas. Was hat das ganze zu bedeuten?