假设我有一个容器,里面有不同颜色的气球。
发布于 2022-09-25 06:11:18
只需使您的颜色枚举。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Balloons {
enum Colors {RED, BLUE, GREEN}
public static void main(String[] args) {
List<Colors> list = new ArrayList<>();
list.add(Colors.RED);
list.add(Colors.BLUE);
list.add(Colors.GREEN);
list.add(Colors.RED);
list.add(Colors.BLUE);
list.add(Colors.RED);
list.add(Colors.BLUE);
list.add(Colors.GREEN);
Collections.sort(list);
System.out.println(list);
}
}
运行以上代码将输出以下内容:
[RED, RED, RED, BLUE, BLUE, BLUE, GREEN, GREEN]
或者,如果您的颜色是字符串,则定义一个适当的比较器。
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class Balloons {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Red");
list.add("Blue");
list.add("Green");
list.add("Red");
list.add("Blue");
list.add("Red");
list.add("Blue");
list.add("Green");
Comparator<String> c = (s1, s2) -> {
if ("Red".equals(s1)) {
if ("Red".equals(s2)) {
return 0;
}
return -1;
}
else if ("Blue".equals(s1)) {
if ("Red".equals(s2)) {
return 1;
}
else if ("Blue".equals(s2)) {
return 0;
}
return -1;
}
else {
if ("Green".equals(s2)) {
return 0;
}
return 1;
}
};
list.sort(c);
System.out.println(list);
}
}
https://stackoverflow.com/questions/73842233
复制相似问题