J'aimerais pouvoir créer quelque chose comme un opérateur SQL moins (← transmis) entre les types de liste, et quand je l'ai recherché, j'ai trouvé qu'Apache Commons était utile.
Sample.java
List<String> list1 = Arrays.asList("a", "b", "e", "f");
List<String> list2 = Arrays.asList("a", "b", "c", "d", "e");
//Extraire ce qui est dans list1 mais pas dans list2
@SuppressWarnings("unchecked")
Collection<String> result = CollectionUtils.subtract(list1, list2);
System.out.println(result.toString()); // => [f]
En ce qui concerne le contenu de CollectionUtils # soustract (), il semble que ArrayList est créé sur la base du premier argument (list1), et le second argument (list2) est tourné avec un itérateur pour supprimer un par un. Il semble que l'ordre d'un argument (list1) soit garanti. Cependant, je pense qu'il est correct de le regrouper dans le type de données approprié.
J'étais sur le point de produire en série un code simple et gênant comme ↓.
python
List<String> result = new ArrayList<String>(list1);
result.removeAll(list2);
Recommended Posts