java - Collection.sort() 基于第一次排序进行第二次排序

标签 java sorting collections

我在 List<RSSQuestion> 中有一个问题列表,我正在尝试对其进行排序:首先是他们的 keyActivity ,然后在每个 keyActivity 中有subActivities ;我需要根据subActivities来整理问题。

例如:

  1. 轮廓设计(keyActivity)
    1. 子 Activity 一
  2. 规范(keyActivity)
    1. 概览
    2. 待办事项

我的代码如下,它根据 keyActivity 对问题进行排序,但我不知道如何根据 subActivity 进行第二次排序:

private static List<RSSQuestion> sortingExtractedData(List<RSSQuestion> extractedDataByKeyactivity) {
    List<RSSQuestion> exctractedData = new ArrayList<>();

    Collections.sort(extractedDataByKeyactivity, new Comparator<RSSQuestion>() {

        @Override
        public int compare(RSSQuestion o1, RSSQuestion o2) {
            return o1.getKeyActivity().compareTo(o2.getKeyActivity());
        }
    });

    for (RSSQuestion rssQuestion : extractedDataByKeyactivity) {
        Collections.sort(rssQuestion.getSubActivity(), new Comparator<String>() {

            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
    }

    exctractedData.addAll(extractedDataByKeyactivity);
    return exctractedData;
}

请告诉我,我该如何对其余的进行排序 subActivities

最佳答案

这一切都应该用一个 Comparator 来完成,但您只转到 SubActivityKeyActivity是相同的(即 keyActivityCompare == 0 ):

Collections.sort(extractedDataByKeyactivity, new Comparator<RSSQuestion>() {

    @Override
    public int compare(RSSQuestion o1, RSSQuestion o2) {
        int keyActivityCompare = o1.getKeyActivity().compareTo(o2.getKeyActivity());
        if (keyActivityCompare == 0)
          return o1.getSubActivity().compareTo(o2.getSubActivity());
        return keyActivityCompare;
    }
});

关于java - Collection.sort() 基于第一次排序进行第二次排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22763790/

相关文章:

bash - 从列表中查找最旧的文件

java - keyset 和 key 不同的数据类型

java - 将多个按钮与 ActionEvent 结合使用

javascript - 如何将动态术语/排序添加到以下排序函数?

java - 如何从 JBoss 写入远程 JMS 队列

javascript - 字母字符串排序

java - 如何在 Swing 中显示随机图像

Java - 匹配两个无序列表

Java Collections.checked*() 与通用集合

java - 用Java计算时差