Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Objects;
- public class Pair<E> {
- // TODO
- private E item1;
- private E item2;
- public Pair(E first, E second) {
- this.item1 = first;
- this.item2 = second;
- }
- public Pair(Pair<E> pair) {
- this.item1 = pair.item1;
- this.item2 = pair.item2;
- }
- //Getters und Setters
- public E getItem1() {
- return item1;
- }
- public void setFirst(E item1) {
- this.item1 = item1;
- }
- public E getItem2() {
- return item2;
- }
- public void setSecond(E item2) {
- this.item2 = item2;
- }
- //zu ueberschreibende Methoden
- @Override
- public boolean equals(Object o) {
- if (o == null || getClass() != o.getClass()) return false;
- Pair<?> pair = (Pair<?>) o;
- return Objects.equals(getItem1(), pair.getItem1()) && Objects.equals(getItem2(), pair.getItem2());
- }
- @Override
- public int hashCode() {
- return Objects.hash(getItem1(), getItem2());
- }
- @Override
- public String toString() {
- return "Pair" +
- "<" + item1 +
- "," + item2 +
- '>';
- }
- public void swap(){
- E tmp = this.item1;
- this.item1 = this.item2;
- this.item2 = tmp;
- }
- public static void main(String[] args) {
- Pair<Integer> pair1 = new Pair<>(1, 2);
- Pair<Integer> pair2 = new Pair<>(1, 2);
- System.out.println("Variable pair1 hat den Wert: " + pair1);
- System.out.println("Variable pair2 hat den Wert: " + pair2);
- System.out.println("Syntaktische Gleichheit von pair1 und pair2 ist: " + (pair1==pair2));
- System.out.println("Semantische Gleichheit von pair1 und pair2 ist: " + pair1.equals(pair2));
- Pair<Integer> pair1b = pair1;
- Pair<Integer> pair2b = new Pair<>(pair2);
- pair1.swap();
- pair2.setFirst(10);
- System.out.println("Nach swap() hat Variable pair1 den Wert: " + pair1);
- System.out.println("Nach setFirst(10) hat Variable pair2 den Wert: " + pair2);
- System.out.println("Die zuvor erstellte Kopie pair1b hat den Wert: " + pair1b);
- System.out.println("Die zuvor erstellte Kopie pair2b hat den Wert: " + pair2b);
- /*
- Die erwartete Ausgabe ist:
- Variable pair1 hat den Wert: Pair<1, 2>
- Variable pair2 hat den Wert: Pair<1, 2>
- Syntaktische Gleichheit von pair1 und pair2 ist: false
- Semantische Gleichheit von pair1 und pair2 ist: true
- Nach swap() hat Variable pair1 den Wert: Pair<2, 1>
- Nach setFirst(10) hat Variable pair2 den Wert: Pair<10, 2>
- Die zuvor erstellte Kopie pair1b hat den Wert: Pair<2, 1>
- Die zuvor erstellte Kopie pair2b hat den Wert: Pair<1, 2>
- */
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement