首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过采集解决不同球的排序问题

如何通过采集解决不同球的排序问题
EN

Stack Overflow用户
提问于 2022-09-25 05:30:11
回答 1查看 29关注 0票数 -2

假设我有一个容器,里面有不同颜色的气球。

  • 如红,蓝,绿,红,蓝,红,蓝,绿,
  • 现在,按照这种方式排序,这样就会首先添加红色的
  • 然后是蓝色气球,最后是绿色气球。使用适当的集合
EN

回答 1

Stack Overflow用户

发布于 2022-09-25 06:11:18

只需使您的颜色枚举

代码语言:javascript
运行
复制
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);
    }
}

运行以上代码将输出以下内容:

代码语言:javascript
运行
复制
[RED, RED, RED, BLUE, BLUE, BLUE, GREEN, GREEN]

或者,如果您的颜色是字符串,则定义一个适当的比较器。

代码语言:javascript
运行
复制
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);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73842233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档