我需要您的帮助来解决以下问题:
在我的代码中,我有一个元素列表,我需要根据 2 个属性对这个列表进行排序:季节和数字。
列表示例:
<episode_list>
<episode id="280" number="13" season="1">
<title><![CDATA[Bowl Game]]></title>
</episode>
<episode id="314" number="12" season="1">
<title><![CDATA[Piss Test]]></title>
</episode>
<episode id="730" number="11" season="1">
我使用 Collections.sort(),但出现异常。据我了解,我不能将它与 JDOM 元素一起使用:
List<Element> episodes;
Collections.sort(episodes, new Comparator<Element>() {
@Override
public int compare(Element elem1, Element elem2) {
Integer seasonNumber1 = Integer.valueOf(myService.valueOfAttribute("season", elem1));
Integer seasonNumber2 = Integer.valueOf(myService.valueOfAttribute("season", elem2));
int seasonComp = seasonNumber1.compareTo(seasonNumber2);
if (seasonComp != 0) {
return seasonComp;
} else {
Integer episodeNumber1 = Integer.valueOf(myService.valueOfAttribute("number", elem1));
Integer episodeNumber2 = Integer.valueOf(myService.valueOfAttribute("number", elem2));
return episodeNumber1.compareTo(episodeNumber2);
}
}
});
Exception: java.util.Collections$UnmodifiableList$1.set(Unknown Source)
java.util.Collections.sort(Unknown Source)
其实我不需要排序的xml,我唯一需要的是剧集属性“id”(最低季和最低集数)。
你能推荐什么?我有另一个实现,我遍历所有元素,但我不认为这是一个很好的解决方案......我还可以创建 Java 类 Episode(id, episode, season),将 List 转换为 List 并对其进行排序,而且不要认为这是一个好主意。Element 也有 sortContent 方法,但我不知道如何实现它。
我会很感激任何帮助。