我有一个名为 colorList
的列表,它可以包含所有颜色枚举或部分颜色。
public enum Colors {
RED, BLUE, PINK;
private String pickColor(DataKey dataKey) {
List<Colors> colorsList = dataKey.getColors();
// add at the end of colorsList
}
}
- 如果
colorList
中只有一种颜色,那么我需要从colorsList
末尾的 Colors 枚举添加剩余的两种颜色。 - 如果
colorList
中只有两种颜色,那么我需要从colorsList
末尾的Colors枚举添加最后一种颜色。 - 如果
colorList
具有全部三种颜色,那么我不需要向colorsList
添加任何内容。
最好的方法是什么?
最佳答案
首先构建可用颜色的列表
,从中删除起始颜色的列表
,然后将剩余的颜色添加到起始列表,例如。 .
List<Colors> startColors = new ArrayList<>(Arrays.asList(new Colors[]{Colors.RED, Colors.PINK}));
List<Colors> availableColors = new ArrayList<>(Arrays.asList(Colors.values()));
availableColors.removeAll(startColors);
startColors.addAll(availableColors);
System.out.println(startColors);
输出...
[RED, PINK, BLUE]
如果我将 startColors
更改为...
List<Colors> startColors = new ArrayList<>(Arrays.asList(new Colors[]{Colors.PINK}));
它输出...
[PINK, RED, BLUE]
您可以添加一个检查,以查看 startColors
的元素数量是否与 availableList
相同,以及在删除 startColors
后是否相同code> 来自 availableList
如果还有任何可能提高性能的颜色
ps我曾考虑过使用Set
,但集合通常是无序的:P
关于java - 通过查看枚举将剩余颜色添加到数组列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35566313/