EnumSet
是 Java 中一個專門為枚舉類型設計的集合類,它提供了高效的性能和豐富的操作方法。以下是如何正確使用 EnumSet
的一些建議:
創建 EnumSet
使用 EnumSet.noneOf(Class<E> elementType)
創建一個空的 EnumSet
,其中 elementType
是枚舉類型的類對象。
import java.util.EnumSet;
public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public class Main {
public static void main(String[] args) {
EnumSet<Day> weekend = EnumSet.noneOf(Day.class);
}
}
或者使用 EnumSet.allOf(Class<E> elementType)
創建一個包含所有枚舉常量的 EnumSet
。
EnumSet<Day> allDays = EnumSet.allOf(Day.class);
還可以使用 EnumSet.of(E e)
創建一個包含指定枚舉常量的 EnumSet
。
EnumSet<Day> holidays = EnumSet.of(Day.MONDAY, Day.SATURDAY);
添加和刪除元素
使用 add(E e)
方法向 EnumSet
中添加元素,使用 remove(Object o)
方法刪除元素。
weekend.add(Day.SUNDAY);
weekend.remove(Day.SATURDAY);
檢查元素是否存在
使用 contains(Object o)
方法檢查 EnumSet
中是否包含指定元素。
boolean isWeekend = weekend.contains(Day.SUNDAY);
集合操作
EnumSet
支持許多集合操作,如并集、交集、差集等。這些操作可以通過 EnumSet
的靜態方法實現,例如:
EnumSet.allOf(Day.class)
EnumSet.copyOf(allDays)
和 EnumSet.copyOf(weekend)
EnumSet.copyOf(allDays)
和 EnumSet.copyOf(weekend).removeAll(allDays)
EnumSet<Day> union = EnumSet.copyOf(allDays);
union.addAll(weekend);
EnumSet<Day> intersection = EnumSet.copyOf(allDays);
intersection.retainAll(weekend);
EnumSet<Day> difference = EnumSet.copyOf(allDays);
difference.removeAll(weekend);
遍歷 EnumSet
可以使用增強的 for 循環或者迭代器遍歷 EnumSet
中的元素。
for (Day day : weekend) {
System.out.println(day);
}
// 或者
Iterator<Day> iterator = weekend.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
遵循以上建議,您可以更有效地使用 EnumSet
來處理枚舉類型的數據。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。