use*_*002 0 java sorting collections
我有一个问题清单List<RSSQuestion>,我正努力进行排序:先用自己的keyActivity,然后在每个keyActivity有subActivities; 我需要根据问题理清问题subActivities.
例如:
我所拥有的代码如下,即基于的问题对问题进行排序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;
}
Run Code Online (Sandbox Code Playgroud)
请让我知道,如何对其余的进行排序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;
}
});
Run Code Online (Sandbox Code Playgroud)