Java 从一个 List 中删除所有重复的元素: https://www.ossez.com/t/java-list/13942

This commit is contained in:
2022-05-01 11:06:15 -04:00
parent 62e542e8f5
commit 501ccf01f2
4 changed files with 109 additions and 24 deletions
@@ -0,0 +1,64 @@
package com.ossez.collections;
import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.PredicateUtils;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import java.util.*;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
/**
* Test for list Clean up
*
* <p><a href="https://www.ossez.com/t/java-list/13942">https://www.ossez.com/t/java-list/13942</a></p>
*
* @author YuCheng
*/
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class JavaCollectionCleanupDuplicatesTest {
// TESTS - REMOVE DUPLICATES
@Test
public void givenListContainsDuplicates_whenRemovingDuplicatesWithPlainJava_thenCorrect() {
final List<Integer> listWithDuplicates = Lists.newArrayList(5, 0, 3, 1, 2, 3, 0, 0);
final List<Integer> listWithoutDuplicates = new ArrayList<>(new HashSet<>(listWithDuplicates));
assertThat(listWithoutDuplicates, hasSize(5));
assertThat(listWithoutDuplicates, containsInAnyOrder(5, 0, 3, 1, 2));
}
@Test
public void givenListContainsDuplicates_whenRemovingDuplicatesPreservingOrderWithPlainJava_thenCorrect() {
final List<Integer> listWithDuplicates = Lists.newArrayList(5, 0, 3, 1, 2, 3, 0, 0);
final List<Integer> listWithoutDuplicates = new ArrayList<>(new LinkedHashSet<>(listWithDuplicates));
assertThat(listWithoutDuplicates, hasSize(5));
assertThat(listWithoutDuplicates, containsInRelativeOrder(5, 0, 3, 1, 2));
}
@Test
public void givenListContainsDuplicates_whenRemovingDuplicatesWithGuava_thenCorrect() {
final List<Integer> listWithDuplicates = Lists.newArrayList(5, 0, 3, 1, 2, 3, 0, 0);
final List<Integer> listWithoutDuplicates = Lists.newArrayList(Sets.newHashSet(listWithDuplicates));
assertThat(listWithoutDuplicates, hasSize(5));
assertThat(listWithoutDuplicates, containsInAnyOrder(5, 0, 3, 1, 2));
}
@Test
public void givenListContainsDuplicates_whenRemovingDuplicatesPreservingOrderWithGuava_thenCorrect() {
final List<Integer> listWithDuplicates = Lists.newArrayList(5, 0, 3, 1, 2, 3, 0, 0);
final List<Integer> listWithoutDuplicates = Lists.newArrayList(Sets.newLinkedHashSet(listWithDuplicates));
assertThat(listWithoutDuplicates, hasSize(5));
assertThat(listWithoutDuplicates, containsInRelativeOrder(5, 0, 3, 1, 2));
}
}
@@ -71,7 +71,7 @@ public class JavaCollectionCleanupUnitTest {
assertThat(list, hasSize(3));
}
// tests - remove duplicates
// TESTS - REMOVE DUPLICATES
@Test
public void givenListContainsDuplicates_whenRemovingDuplicatesWithPlainJava_thenCorrect() {
@@ -2,15 +2,24 @@ package com.ossez.java8;
import com.google.common.collect.Lists;
import org.junit.Test;
import org.junit.jupiter.api.TestInstance;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.hamcrest.Matchers.hasSize;
import static org.junit.Assert.assertThat;
/**
* Test for list Clean up
*
* <p><a href="https://www.ossez.com/t/java-list/13942">https://www.ossez.com/t/java-list/13942</a></p>
*
* @author YuCheng
*/
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class Java8CollectionCleanupUnitTest {
// tests -