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