下午好。
我想问一下关于Java枚举的问题:如果有两个枚举
enum Elements_1 {aaa, bbb, ccc};
和
enum Elements_2 {ccc, ddd, eee};
我们如何判断一个元素是否包含在另一个元素中?
谢谢。
答案 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()
的交集。