Sorting JDOM elements using Java API -
i need following issue:
in code have list of elements, need sort list according 2 attributes: season , number.
list example:
<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"> i use collections.sort(), getting exception. understand can't use jdom elements:
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) actually don't need sorted xml, thing need episode attribute "id" (for lowest season , lowest episode number).
what recommend? have implementation, go through elements, don't think it's nice solution...i can create java class episode(id, episode, season), transform list list , sort it, don't think it's idea. there sortcontent method element, i'm not sure how implement it.
i'll appreciate help.
what's wrong going through list , finding minimum. o(n), while sorting o(n*log(n)). might use generic min function, such 1 in guava
element firstepisode = ordering.from(your-comparator).min(episodes.iterator()); if want sort it, why don't sort new arraylist<element>(episodes) (i agree rolfl cannot use collections.sort jdom lists , error comes use of unmodifiable list).
Comments
Post a Comment