如何在 Java 中找到枚举的子集?

How to find subset of enum in Java?

我有一个枚举,如下所示:

public enum DatacenterEnum {
    ABC, PQR, LTR;

    // this tells my current local datacenter enum
    private static final DatacenterEnum ourLocation = findCurrentLocation();

}

现在我想查找远程数据中心的列表。例如,如果 ourLocation 是 ABC,那么 REMOTE_DATACENTER 列表或者它可以是 EnumSet(稍后我将对此进行迭代)应该具有 PQR 和 LTR,对于其他组合也类似。最好的方法是什么?

听起来你想要补充

// contains all DatacenterEnum except ourLocation
Set<DatacenterEnum> remoteSet =
    EnumSet.complementOf(EnumSet.of(ourLocation));
// as a List, if you want
List<DataceterEnum> remoteList =
    new ArrayList<>(remoteSet);