如何找到另一个枚举中是否包含一个枚举的元素?

时间:2017-03-22 17:28:54

标签: java

下午好。

我想问一下关于Java枚举的问题:如果有两个枚举

enum Elements_1 {aaa, bbb, ccc};

enum Elements_2 {ccc, ddd, eee};

我们如何判断一个元素是否包含在另一个元素中?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您需要检查枚举的名称,这应该有效:

List<String> enumA = Arrays.stream(Elements_1.values()).map(Enum::name).collect(Collectors.toList());
List<String> enumB = Arrays.stream(Elements_2.values()).map(Enum::name).collect(Collectors.toList());
enumA.retainAll(enumB);

enumA将显示两个枚举之间的交集。

或没有溪流:

List<String> enumA = new ArrayList<>();
for (Enum constant : Elements_1.values())
    enumA.add(constant.name());

List<String> enumB = new ArrayList<>();
for (Enum constant : Elements_2.values())
    enumB.add(constant.name());

enumA.retainAll(enumB);

如果你想在运行时只检查一个元素,我建议你在enum中将enumA存储为静态,然后实现一个简单的方法来检查与contains()的交集。