Advertisement
madegoff

AlgoDat

Apr 30th, 2024
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. import java.util.Objects;
  2.  
  3. public class Pair<E> {
  4. // TODO
  5.  
  6. private E item1;
  7. private E item2;
  8.  
  9. public Pair(E first, E second) {
  10. this.item1 = first;
  11. this.item2 = second;
  12. }
  13.  
  14. public Pair(Pair<E> pair) {
  15.  
  16. this.item1 = pair.item1;
  17. this.item2 = pair.item2;
  18. }
  19.  
  20.  
  21.  
  22. //Getters und Setters
  23. public E getItem1() {
  24. return item1;
  25. }
  26.  
  27. public void setFirst(E item1) {
  28. this.item1 = item1;
  29. }
  30.  
  31. public E getItem2() {
  32. return item2;
  33. }
  34.  
  35. public void setSecond(E item2) {
  36. this.item2 = item2;
  37. }
  38.  
  39. //zu ueberschreibende Methoden
  40.  
  41.  
  42. @Override
  43. public boolean equals(Object o) {
  44.  
  45. if (o == null || getClass() != o.getClass()) return false;
  46. Pair<?> pair = (Pair<?>) o;
  47. return Objects.equals(getItem1(), pair.getItem1()) && Objects.equals(getItem2(), pair.getItem2());
  48. }
  49.  
  50. @Override
  51. public int hashCode() {
  52. return Objects.hash(getItem1(), getItem2());
  53. }
  54.  
  55. @Override
  56. public String toString() {
  57. return "Pair" +
  58. "<" + item1 +
  59. "," + item2 +
  60. '>';
  61. }
  62.  
  63. public void swap(){
  64. E tmp = this.item1;
  65. this.item1 = this.item2;
  66. this.item2 = tmp;
  67. }
  68.  
  69. public static void main(String[] args) {
  70. Pair<Integer> pair1 = new Pair<>(1, 2);
  71. Pair<Integer> pair2 = new Pair<>(1, 2);
  72. System.out.println("Variable pair1 hat den Wert: " + pair1);
  73. System.out.println("Variable pair2 hat den Wert: " + pair2);
  74. System.out.println("Syntaktische Gleichheit von pair1 und pair2 ist: " + (pair1==pair2));
  75. System.out.println("Semantische Gleichheit von pair1 und pair2 ist: " + pair1.equals(pair2));
  76. Pair<Integer> pair1b = pair1;
  77. Pair<Integer> pair2b = new Pair<>(pair2);
  78. pair1.swap();
  79. pair2.setFirst(10);
  80. System.out.println("Nach swap() hat Variable pair1 den Wert: " + pair1);
  81. System.out.println("Nach setFirst(10) hat Variable pair2 den Wert: " + pair2);
  82. System.out.println("Die zuvor erstellte Kopie pair1b hat den Wert: " + pair1b);
  83. System.out.println("Die zuvor erstellte Kopie pair2b hat den Wert: " + pair2b);
  84.  
  85. /*
  86. Die erwartete Ausgabe ist:
  87. Variable pair1 hat den Wert: Pair<1, 2>
  88. Variable pair2 hat den Wert: Pair<1, 2>
  89. Syntaktische Gleichheit von pair1 und pair2 ist: false
  90. Semantische Gleichheit von pair1 und pair2 ist: true
  91. Nach swap() hat Variable pair1 den Wert: Pair<2, 1>
  92. Nach setFirst(10) hat Variable pair2 den Wert: Pair<10, 2>
  93. Die zuvor erstellte Kopie pair1b hat den Wert: Pair<2, 1>
  94. Die zuvor erstellte Kopie pair2b hat den Wert: Pair<1, 2>
  95. */
  96. }
  97. }
  98.  
  99.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement