Java EnumSet of()方法
- Java中的java.util.EnumSet.of(E ele1, E ele2, E ele3, …)方法用于创建一个最初包含参数中指定元素的枚举集。当多个项目同时被添加时,这些元素会随着新元素的添加而被推倒在集合中。当不同的元素在不同的时间或迭代中被添加时,旧的元素被替换。
语法:
Enum_Set = EnumSet.of(E ele1, E ele2, E ele3, ...)
参数:该方法可以接受多个参数,其数量与枚举中存在的一样多。
返回值:该方法返回一个枚举集,最初包含通过参数传递的指定元素。
异常:该方法抛出NullPointerException,如果任何通过的元素是空的。
下面的程序说明了java.util.EnumSet.of()方法的工作。
程序1:每次添加一个元素都会替换掉之前的元素。
// Java program to demonstrate range() method
import java.util.*;
// Creating an enum of GFG type
enum GFG {
Welcome,
To,
The,
World,
of,
Geeks
}
;
public class Enum_Set_Demo {
public static void main(String[] args)
{
// Creating an EnumSet
EnumSet<GFG> e_set;
// Adding elements
e_set = EnumSet.of(GFG.The);
// Displaying the updated set
System.out.println("The enum set is: " + e_set);
// Adding elements
e_set = EnumSet.of(GFG.Geeks);
// Displaying the updated set
System.out.println("The enum set is: " + e_set);
// Adding elements
e_set = EnumSet.of(GFG.Welcome);
// Displaying the updated set
System.out.println("The enum set is: " + e_set);
}
}
输出:
The enum set is: [The]
The enum set is: [Geeks]
The enum set is: [Welcome]
程序2:同时添加两个元素。
// Java program to demonstrate range() method
import java.util.*;
// Creating an enum of GFG type
enum GFG {
Welcome,
To,
The,
World,
of,
Geeks
}
;
public class Enum_Set_Demo {
public static void main(String[] args)
{
// Creating an EnumSet
EnumSet<GFG> e_set;
// Adding elements
e_set = EnumSet.of(GFG.The, GFG.Geeks);
// Displaying the updated set
System.out.println("The enum set is: " + e_set);
// Adding elements
e_set = EnumSet.of(GFG.Geeks, GFG.Welcome);
// Displaying the updated set
System.out.println("The enum set is: " + e_set);
// Adding elements
e_set = EnumSet.of(GFG.of, GFG.World);
// Displaying the updated set
System.out.println("The enum set is: " + e_set);
}
}
输出:
The enum set is: [The, Geeks]
The enum set is: [Welcome, Geeks]
The enum set is: [World, of]
示例 3: 同时添加多个元素。
// Java program to demonstrate range() method
import java.util.*;
// Creating an enum of GFG type
enum GFG {
Welcome,
To,
The,
World,
of,
Geeks
}
;
public class Enum_Set_Demo {
public static void main(String[] args)
{
// Creating an EnumSet
EnumSet<GFG> e_set;
// Adding 2 elements
e_set = EnumSet.of(GFG.The, GFG.Geeks);
// Displaying the updated set
System.out.println("The enum set is: " + e_set);
// Adding 3 elements
e_set = EnumSet.of(GFG.The, GFG.Geeks, GFG.Welcome);
// Displaying the updated set
System.out.println("The enum set is: " + e_set);
// Adding 4 elements
e_set = EnumSet.of(GFG.Geeks, GFG.Welcome,
GFG.of, GFG.World);
// Displaying the updated set
System.out.println("The enum set is: " + e_set);
// Adding 5 elements
e_set = EnumSet.of(GFG.Welcome, GFG.To, GFG.The,
GFG.of, GFG.World, GFG.Geeks);
// Displaying the updated set
System.out.println("The enum set is: " + e_set);
}
}
输出:
The enum set is: [The, Geeks]
The enum set is: [Welcome, The, Geeks]
The enum set is: [Welcome, World, of, Geeks]
The enum set is: [Welcome, To, The, World, of, Geeks]
- java.util.EnumSet.of( E_first, E_rest )用于创建一个最初包含所有指定元素的枚举集。这个工厂的参数列表使用了var_args特性,也可以用来创建一个最初包含任意数量元素的枚举集,但它的缺点是使程序的运行速度比不使用var_args的重载慢。
语法:
public static <E extends Enum<E>> EnumSet<E> of(E_first, E_rest)
参数:该方法需要两个参数。
* E_first。这是一个枚举类型的参数,指的是集合最初要包含的元素。
* E_rest: 这也是枚举类型的,指的是集合最初需要包含的其他元素。
返回值:该方法返回一个枚举集合,最初包含通过参数传递的指定元素。
异常:该方法抛出NullPointerException,如果任何通过的元素是空的。
下面的程序说明了java.util.EnumSet.of( E_first, E_rest ) 方法的工作。
// Java program to demonstrate of() method
import java.util.*;
// Creating an enum of GFG type
enum GFG {
Welcome,
To,
The,
World,
of,
Geeks
}
;
public class Enum_Set_Demo {
public static void main(String[] args) {
// Creating the ist that will be used as args
GFG[] listing = {GFG.Welcome, GFG.The,
GFG.World, GFG.Geeks};
// Calling the other main function
other_main(listing);
}
// The other_main.
public static void other_main(GFG[] other_args) {
// Creating the set
EnumSet<GFG> e_set;
// Adding the first element and the other_args
e_set = EnumSet.of(GFG.Welcome, other_args);
// Displaying the e_set
System.out.println("Set: " + e_set);
}
}
输出:
Set: [Welcome, The, World, Geeks]