O que o EnumSet realmente significa?

Eu tenho o seguinte exemplo:

import java.util.EnumSet;
import java.util.Iterator;

public class SizeSet {

    public static void main(String[] args) {
        EnumSet largeSize = EnumSet.of(Size.XL,Size.XXL,Size.XXXL);
        for(Iterator it = largeSize.iterator();it.hasNext();){
            Size size = (Size)it.next();
            System.out.println(size);
        }
    }
}


enum Size {
  S, M, L, XL, XXL, XXXL;

}

Neste código, posso entender que o Enum cria um tipo Enum de Tamanhos.

Minha pergunta é: élargeSize um objeto do tipo EnumSet? O que isso realmente significa? Eu realmente quero entender melhor.

questionAnswers(9)

yourAnswerToTheQuestion