Ce qui est intéressant, voici donc quelques tests avec sortie:
static void test(String... args) {
Set<String> s =new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
s.addAll(Arrays.asList( "a","b","c"));
s.removeAll(Arrays.asList(args));
System.out.println(s);
}
public static void main(String[] args) {
test("C"); output: [a, b]
test("C", "A"); output: [b]
test("C", "A","B"); output: [a, b, c]
test("B","C","A"); output: [a, b, c]
test("K","C"); output: [a, b]
test("C","K","M"); output: [a, b, c] !!
test("C","K","A"); output: [a, b, c] !!
}
Maintenant, sans le comparateur, il fonctionne exactement comme une triés HashSet<String>()
:
static void test(String... args) {
Set<String> s = new TreeSet<String>();//
s.addAll(Arrays.asList( "a","b","c"));
s.removeAll(Arrays.asList(args));
System.out.println(s);
}
public static void main(String[] args) {
test("c"); output: [a, b]
test("c", "a"); output: [b]
test("c", "a","b"); output: []
test("b","c","a"); output: []
test("k","c"); output: [a, b]
test("c","k","m"); output: [a, b]
test("c","k","m"); output: [a, b]
}
Maintenant à partir de la documentation:
public boolean removeAll(Collection c)
Supprime de l'ensemble de ses éléments qui sont contenus dans le
collection spécifiée (facultatif de l'opération). Si la collection spécifiée
aussi, cette opération de manière efficace modifie cette série, de sorte que
sa valeur est à l'asymétrie de différence entre les deux ensembles.
Cette mise en œuvre détermine qui est le plus petit de cet ensemble et
la collection spécifiée, en invoquant la méthode de dimensionnement sur chaque. Si ce
a moins d'éléments, puis la mise en œuvre itère sur ce
ensemble, la vérification de chaque élément retourné par l'itérateur à son tour, pour voir si
elle est contenue dans la collection spécifiée. Si c'est le cas, il
est retiré de cet ensemble avec l'itérateur de la méthode remove. Si l'
collection spécifiée a moins d'éléments, puis la mise en œuvre
parcourt la collection spécifiée, la suppression de cet ensemble chaque
élément retourné par l'itérateur, à l'aide de cet ensemble de supprimer la méthode.
Source