EnumSet的不可变版本

Car*_*cas 14 java collections set immutability

我找不到EnumSetImmutable版本.两个问题:

我可以在普通的Guava ImmutableSet中使用Enums吗?

如果可以,使用ImmutableSet而不是EnumSet有什么好处/缺点?

Jon*_*eet 17

你在寻找Sets.immutableEnumSet(番石榴)吗?

返回包含给定枚举元素的不可变集合实例.在内部,返回的集将由EnumSet支持.

返回集的迭代顺序遵循枚举的迭代顺序,而不是元素在给定集合中出现的顺序.


小智 8

这有问题吗?

Collections.unmodifiableSet(myEnumSet);
Run Code Online (Sandbox Code Playgroud)

  • 在某些情况下,Immutable比简单的Unmodifiable更好.不可修改的集合不保证永远不会更改其内容,它们只保证您不能更改内容. (5认同)
  • 答案返回 `Set<Enumtype>` 而不是 `EnumSet<Enumtype>`。并且 `Collections.unmodifyingSet()` 的结果不能转换为 `EnumSet<Enumtype>`。 (4认同)