java intersection of lists

Run Settings
LanguageJava
Language Version
Run Command
import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; import java.util.List; class Main { public static void main(String[] args) { // Initialisation des 4 listes (16 élements, 3 répétés (2, 5, 10)) final Collection<Long> premierePageMouvementsIds = new ArrayList(Arrays.asList( 1L, 3L, 5L, 7L)); final Collection<Long> deuxiemePageMouvementsIds = new ArrayList(Arrays.asList( 2L, 4L, 6L, 8L)); final Collection<Long> troisiemePageMouvementsIds = new ArrayList(Arrays.asList(2L, 9L, 10L, 11L)); final Collection<Long> quatriemePageMouvementsIds = new ArrayList(Arrays.asList(5L, 10L, 15L, 20L)); // Construction de la liste de tous les élements final List<Long> mouvementsIds = new ArrayList<>(); mouvementsIds.addAll(premierePageMouvementsIds); mouvementsIds.addAll(deuxiemePageMouvementsIds); mouvementsIds.addAll(troisiemePageMouvementsIds); mouvementsIds.addAll(quatriemePageMouvementsIds); // Liste des élements différents // (un hashset ne peut contenir plusieurs fois le même élement) final Collection<Long> different = new HashSet<>(); // Liste des élements similaires final Collection<Long> similar = new HashSet<>(); // Construction des listes for (Long id : mouvementsIds) { if (different.contains(id)) { similar.add(id); } else { different.add(id); } } // Calcul du nombre d'élements total final long numberOfElements = premierePageMouvementsIds.size() + deuxiemePageMouvementsIds.size() + troisiemePageMouvementsIds.size() + quatriemePageMouvementsIds.size(); // Résultat System.out.println(numberOfElements + " total elements"); System.out.println(similar.size() + " similar: " + similar); System.out.println(different.size() + " different"); if (similar.size() + different.size() != numberOfElements) { System.out.println(""); System.out.println(" > There is an error somewhere in the algorithm"); } } }
Editor Settings
Theme
Key bindings
Full width
Lines