Hallo!
A a = new T();
A b = new T();
ArrayList<T> arrayList = new ArrayList<T>();
arrayList.add(a);
WENN a.equals(b) DANN arrayList.contains(b) is true
Dies ist die Logik von ArrayList#contains(Object). (Oder?) In meinem Programm funktioniert sie aber leider nicht, wenn T ein parametrisierter Datentyp ist.
Bei diesem Code:
erwarte ich die Ausgabe
und kriege stattdessen
Kann jemand das Phänomen erklären?
Danke
A a = new T();
A b = new T();
ArrayList<T> arrayList = new ArrayList<T>();
arrayList.add(a);
WENN a.equals(b) DANN arrayList.contains(b) is true
Dies ist die Logik von ArrayList#contains(Object). (Oder?) In meinem Programm funktioniert sie aber leider nicht, wenn T ein parametrisierter Datentyp ist.
Bei diesem Code:
Java:
// PointS
Point testPointA = new Point(1, 2);
Point testPointB = new Point(1, 2);
// PointPairS
EqualPair<Point> testPointPairA = new EqualPair<Point>(testPointA, testPointB);
EqualPair<Point> testPointPairB = new EqualPair<Point>(testPointA, testPointB);
// PointLisS
ArrayList<Point> testPointList = new ArrayList<Point>();
testPointList.add(testPointA);
// PointListPairS
ArrayList<EqualPair<Point>> testPointPairList = new ArrayList<EqualPair<Point>>();
testPointPairList.add(testPointPairA);
// SysoS
System.out.println(testPointA.equals(testPointB));
System.out.println(testPointPairA.equals(testPointPairB));
System.out.println(testPointList.contains(testPointB));
System.out.println(testPointPairList.contains(testPointPairB));
true
true
true
true
und kriege stattdessen
true
true
true
false
Kann jemand das Phänomen erklären?
Danke