- Hallo, der Code funktioniert nicht genau kann jemand mir bitte helfen ?
- Die Methode nimmt zwei Parameter vom Typ List<Integer> entgegen.
- Es ist möglich, dass eine oder beide der übergebenen Listen null ist.
- Es ist möglich, dass die Listen Elemente enthalten, die null sind.
- Die Methode gibt einen boolean zurück, der genau dann true ist, wenn beide Listen gleich sind.
- Wenn zwei verglichene Listen jeweils null sind, sind sie als gleich zu betrachten.
- Wenn eine der beiden Listen null ist und die andere nicht, sind sie als ungleich zu betrachten.
- Zwei Listen, die nicht null sind, sind gleich genau dann, wenn jedes Element einer Liste mit dem jeweils an der gleichen Position befindlichen Element der anderen Liste übereinstimmt.
- Listen, die nicht die gleiche Länge haben, können somit nicht gleich sein.
- Listen, die die gleiche Menge von Elementen enthalten, aber in unterschiedlicher Reihenfolge, sind ebenfalls nicht als gleich zu betrachten.
- Wenn zwei verglichene Elemente jeweils null sind, sind sie als gleich zu betrachten.
- Wenn eines von zwei Elementen null ist und das andere nicht, sind sie als ungleich zu betrachten
Java:
public static boolean istGleich(List<Integer> l1, List<Integer> l2)
{
// wenn beide Listen null sind, sind sie gleich
if (l1 == null && l2 == null)
{
return true;
}
// wenn eine von beiden Listen null ist, sind sie nicht gleich
// (der Fall 'beide null' ist oben behandelt worden)
if (l1 == null || l2 == null)
{
return false;
}
// wenn sich die Laenge der Listen unterscheidet,
// sind sie nicht gleich
if (l1.size() != l2.size())
{
return false;
}
// Schleife zaehlt Indizes der Liste hoch, um die Elemente
// an der jeweiligen Position zu vergleichen
// (da die Laengen gleich sind, ist sichergestellt, dass ueber
// beide Listen gleich oft iteriert werden muss)
if( l1!=null && l2!=null && l1.size()==l2.size()){
for (int i = 0; i < l1.size(); i++)
{
//Integer n1 = l1.get(i);
//Integer n2 = l2.get(i);
// wenn zwei Elemente nicht uebereinstimmen, sind
// die Listen nicht komplett gleich
// => damit kann direkt false zurueckgegeben werden
if ( l1.get(i)!=null && (!l1.get(i).equals(l2.get(i))))
{
return false;
}
}
}
// wenn kein Unterschied in den Listen festgestellt wurde,
// kann nun am Ende true zurueckgegeben werden
return true;
}