我在 List<RSSQuestion>
中有一个问题列表,我正在尝试对其进行排序:首先是他们的 keyActivity
,然后在每个 keyActivity
中有subActivities
;我需要根据subActivities
来整理问题。
例如:
- 轮廓设计(keyActivity)
- 子 Activity 一
- 规范(keyActivity)
- 概览
- 待办事项
我的代码如下,它根据 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
来完成,但您只转到 SubActivity
当 KeyActivity
是相同的(即 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/