diff --git a/core-java-modules/core-java-collections-list-5/pom.xml b/core-java-modules/core-java-collections-list-5/pom.xml index c7ee3c3efd..2269cce9fd 100644 --- a/core-java-modules/core-java-collections-list-5/pom.xml +++ b/core-java-modules/core-java-collections-list-5/pom.xml @@ -1,41 +1,52 @@ - - - 4.0.0 - core-java-collections-list-5 - core-java-collections-list-5 - jar - - - com.baeldung.core-java-modules - core-java-modules - 0.0.1-SNAPSHOT - - - - - org.openjdk.jmh - jmh-core - 1.36 - - - - commons-lang - commons-lang - ${commons-lang.version} - - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - - - - - 1.21 - 2.2 - 3.12.0 - - + + + 4.0.0 + core-java-collections-list-5 + core-java-collections-list-5 + jar + + + com.baeldung.core-java-modules + core-java-modules + 0.0.1-SNAPSHOT + + + + + org.openjdk.jmh + jmh-core + 1.36 + + + commons-lang + commons-lang + ${commons-lang.version} + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + + org.apache.commons + commons-collections4 + 4.4 + + + + org.projectlombok + lombok + 1.18.26 + provided + + + + + 1.21 + 2.2 + 3.12.0 + \ No newline at end of file diff --git a/core-java-modules/core-java-collections-list-5/src/main/java/com/baeldung/list/Country.java b/core-java-modules/core-java-collections-list-5/src/main/java/com/baeldung/list/Country.java new file mode 100644 index 0000000000..354aeca2d3 --- /dev/null +++ b/core-java-modules/core-java-collections-list-5/src/main/java/com/baeldung/list/Country.java @@ -0,0 +1,11 @@ +package com.baeldung.list; + +import lombok.Data; + +@Data +public class Country { + + private final String name; + private final String capital; + +} diff --git a/core-java-modules/core-java-collections-list-5/src/test/java/com/baeldung/java/list/ListContainsElementFromOtherListTest.java b/core-java-modules/core-java-collections-list-5/src/test/java/com/baeldung/java/list/ListContainsElementFromOtherListTest.java new file mode 100644 index 0000000000..0f47f7713a --- /dev/null +++ b/core-java-modules/core-java-collections-list-5/src/test/java/com/baeldung/java/list/ListContainsElementFromOtherListTest.java @@ -0,0 +1,68 @@ +package com.baeldung.java.list; + +import static java.util.stream.Collectors.toSet; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.apache.commons.collections4.CollectionUtils; +import org.junit.Test; + +import com.baeldung.list.Country; + +public class ListContainsElementFromOtherListTest { + + final private List listOfLetters = Arrays.asList("a", "b", "c", "d"); + final private List listOfLettersWithOverlap = Arrays.asList("d", "e", "f", "g"); + final private List listOfCities = Arrays.asList("London", "Berlin", "Paris", "Brussels"); + + @Test + public void givenValuesToCompare_whenUsingCollectionsDisjoint_thenDetectElementsInTwoLists() { + boolean shouldBeTrue = !Collections.disjoint(listOfLetters, listOfLettersWithOverlap); + assertTrue(shouldBeTrue); + + boolean shouldBeFalse = !Collections.disjoint(listOfLetters, listOfCities); + assertFalse(shouldBeFalse); + } + + @Test + public void givenValuesToCompare_whenUsingStreams_thenDetectElementsInTwoLists() { + boolean shouldBeTrue = listOfLetters.stream() + .anyMatch(listOfLettersWithOverlap::contains); + assertTrue(shouldBeTrue); + + boolean shouldBeFalse = listOfLetters.stream() + .anyMatch(listOfCities::contains); + assertFalse(shouldBeFalse); + } + + @Test + public void givenValuesToCompare_whenUsingApacheCollectionUtils_thenDetectElementsInTwoLists() { + boolean shouldBeTrue = CollectionUtils.containsAny(listOfLetters, listOfLettersWithOverlap); + assertTrue(shouldBeTrue); + + boolean shouldBeFalse = CollectionUtils.containsAny(listOfLetters, listOfCities); + assertFalse(shouldBeFalse); + } + + @Test + public void givenPropertiesInObjectsToCompare_whenUsingStreams_thenDetectElementsInTwoLists() { + Country france = new Country("France", "Paris"); + Country belgium = new Country("Belgium", "Brussels"); + Country spain = new Country("Spain", "Madrid"); + List franceAndBelgium = Arrays.asList(france, belgium); + List belgiumAndSpain = Arrays.asList(belgium, spain); + + boolean shouldBeTrue = franceAndBelgium.stream() + .map(Country::getCapital) + .anyMatch(belgiumAndSpain.stream() + .map(Country::getCapital) + .collect(toSet())::contains); + + assertTrue(shouldBeTrue); + } + +}