我有一个像这样的EnumSet:
EnumSet<Fruit> otherFruits = EnumSet.complementOf(CURRENT_FRUIT);
我想在otherFruits
内随机播放元素。
有没有办法在这个EnumSet中随机化/随机化元素?如果可能,我不想将其转换为List。任何人都可以提供一个例子。
我使用的是Java 7.
答案 0 :(得分:4)
不,如果不转换为其他数据类型(如数组或列表),则无法执行此操作。内部EnumSet
不保留顺序:它只存储使用过的枚举常量的位掩码。这样它速度更快,占用的内存非常少。
要解决您的问题,您可以使用ArrayList
:
List<Fruit> fruits = new ArrayList<>(otherFruits);
Collections.shuffle(fruits);
答案 1 :(得分:1)
设置不具有可修改的订单。您需要将其转换为List
或其他类似的集合类型。