Java EnumSet copyOf() Method



Description

The Java EnumSet copyOf(EnumSet<E> s) method creates an enum set with the same element type as the specified enum set.It contains the same elements (if any).

Declaration

Following is the declaration for java.util.EnumSet.copyOf() method

public static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)

Parameters

s − the enum set from which to initialize this enum set.

Return Value

This method does not return any value.

Exception

NullPointerException − if s is null

Getting Copy of EnumSet Example

The following example shows the usage of Java EnumSet copyOf(EnumSet) method to populate the EnumSet instance. We've created a enum Numbers. Then a EnumSet instance is created using a enum value. Using copyOf(EnumSet) method, enumSet is populated with values of enumSet and resulted enumSet is printed.

package com.tutorialspoint;

import java.util.EnumSet;

public class EnumSetDemo {

   // create an enum
   public enum Numbers {
      ONE, TWO, THREE, FOUR, FIVE
   };

   public static void main(String[] args) {

      // create a set that contains all Numbers class
      EnumSet<Numbers> set1 = EnumSet.allOf(Numbers.class);

      // print set1
      System.out.println("Set1:" + set1);

      // create a second set which is a copy of set1
      EnumSet<Numbers> set2 = EnumSet.copyOf(set1);

      // print the new set
      System.out.println("Set2:" + set2);
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Set1:[ONE, TWO, THREE, FOUR, FIVE]
Set2:[ONE, TWO, THREE, FOUR, FIVE]

Getting Copy of EnumSet of Enum with Value Example

The following example shows the usage of Java EnumSet copyOf(EnumSet) method to populate the EnumSet instance. We've created a enum Numbers. Then a EnumSet instance is created using a enum value. Using copyOf(EnumSet) method, enumSet is populated with values of enumSet and resulted enumSet is printed.

package com.tutorialspoint;

import java.util.EnumSet;

public class EnumSetDemo {

   // create an enum
   public enum Number {
      ONE("1"), TWO("2"), THREE("3"), FOUR("4"), FIVE("5");

      // instance variable for enum
      private String value;

      public String getValue() {
         return this.value;
      }

      // constructor should be private or protected
      private Number(String value) {
         this.value = value;
      }

      @Override
      public String toString() {
        return this.name() +"(" + this.value + ")";
      }
   };

   public static void main(String[] args) {

      // create a set that contains all Numbers class
      EnumSet<Number> set1 = EnumSet.allOf(Number.class);

      // print set1
      System.out.println("Set1:" + set1);

      // create a second set which is a copy of set1
      EnumSet<Number> set2 = EnumSet.copyOf(set1);

      // print the new set
      System.out.println("Set2:" + set2);
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Set1:[ONE(1), TWO(2), THREE(3), FOUR(4), FIVE(5)]
Set2:[ONE(1), TWO(2), THREE(3), FOUR(4), FIVE(5)]
java_util_enumset.htm
Advertisements