Überprüfen Sie, ob zwei Listen in Java gleich sind

1. Einleitung

In diesem kurzen Artikel werden wir über die gemeinsame Problem der Prüfung konzentrieren , wenn zwei Listeninstanzen die gleichen Elemente in genau der gleichen Reihenfolge enthalten.

List ist eine geordnete Datenstruktur, daher ist die Reihenfolge der Elemente vom Design her von Bedeutung.

Schauen Sie sich einen Auszug aus der Liste # gleich Java-Dokumentation an:

… Zwei Listen sind gleich definiert, wenn sie dieselben Elemente in derselben Reihenfolge enthalten.

Diese Definition stellt sicher, dass die Methode equals in verschiedenen Implementierungen der List-Schnittstelle ordnungsgemäß funktioniert.

Wir können dieses Wissen beim Schreiben von Aussagen nutzen.

In den folgenden Codeausschnitten werden die folgenden Listen als Beispieleingaben verwendet:

List list1 = Arrays.asList("1", "2", "3", "4"); List list2 = Arrays.asList("1", "2", "3", "4"); List list3 = Arrays.asList("1", "2", "4", "3");

2. JUnit

In einem reinen JUnit-Test sind die folgenden Aussagen wahr:

@Test public void whenTestingForEquality_ShouldBeEqual() throws Exception { Assert.assertEquals(list1, list2); Assert.assertNotSame(list1, list2); Assert.assertNotEquals(list1, list3); }

3. TestNG

Wenn Sie die Assertions von TestNG verwenden, sehen sie den Assertions von JUnit sehr ähnlich. Es ist jedoch wichtig zu beachten, dass die Assert- Klasse aus einem anderen Paket stammt:

@Test public void whenTestingForEquality_ShouldBeEqual() throws Exception { Assert.assertEquals(list1, list2); Assert.assertNotSame(list1, list2); Assert.assertNotEquals(list1, list3); }

4. AssertJ

Wenn Sie AssertJ verwenden möchten, sehen die Assertions wie folgt aus:

@Test public void whenTestingForEquality_ShouldBeEqual() throws Exception { assertThat(list1) .isEqualTo(list2) .isNotEqualTo(list3); assertThat(list1.equals(list2)).isTrue(); assertThat(list1.equals(list3)).isFalse(); }

5. Schlussfolgerung

In diesem Artikel haben wir untersucht , wie man testen , ob zwei Listeninstanzen die gleichen Elemente in der gleichen Reihenfolge enthalten. Der wichtigste Teil dieses Problems war das richtige Verständnis der Funktionsweise der Listendatenstruktur .

Alle Codebeispiele finden Sie auf GitHub.