gpt4 book ai didi

java - 如何减少代码中List的使用?

转载 作者:行者123 更新时间:2023-11-30 08:11:47 24 4
gpt4 key购买 nike

我有一个像这样的 EnumSet,为了对元素进行洗牌,我需要将其转换为 List。

EnumSet<Fruit> otherFruits = EnumSet.complementOf(CURRENT_FRUIT);

下面是我的代码,我正在其中进行洗牌并添加原始结果列表:

private static List<Fruits> getFruits() {
EnumSet<Fruits> local = EnumSet.of(CURRENT_FRUIT);
// first element in the list will always be the local fruit so using LinkedList
List<Fruits> result = new LinkedList<Fruits>(local);

// I just want to shuffle remoteFruits only
EnumSet<Fruit> otherFruits = EnumSet.complementOf(CURRENT_FRUIT);
List<Fruits> remoteFruits = new ArrayList<Fruits>(otherFruits);
Collections.shuffle(remoteFruits, new Random(System.nanoTime()));

result.addAll(remoteFruits);
return result;
}

到目前为止,我在上面的代码中使用了两个列表,然后将 remoteFruits 列表的所有元素添加到 result 列表中。有没有办法在一个列表中完成所有这些事情?我只想随机播放 otherFruits 元素。

这里有优化的机会吗?

最佳答案

事实上,如果你改变操作的顺序就可以做到:

private static List<Fruits> getFruits() {
EnumSet<Fruits> local = EnumSet.of(CURRENT_FRUIT);
EnumSet<Fruit> otherFruits = EnumSet.complementOf(CURRENT_FRUIT);

// start by adding and shuffling otherFruits
List<Fruits> result = new ArrayList<Fruits>(otherFruits)
Collections.shuffle(result, new Random(System.nanoTime()));

// now add local
result.addAll(new ArrayList<Fruits>(local));
return result;
}

关于java - 如何减少代码中List的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30295372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com