Srs, eu tenho uma collection de um objeto e preciso ordenar essa coleção baseado na combinação de 3 campos.
tipo ordenar por data e dentro da data ordenar por numero de nota e dentro da nota ordenar por item da nota.
Alguem pode me ajudar a fazer ?
tentei o Collections.sort mas so consegui ordenar por um campo.
Implementar a interface Comparable (que vai fornecer o método compareTo)
E ai implementar o método compareTo, seguindo a seguinte convenção (segundo a documentação do JDK 1.6)
compareTo
int compareTo(T o)
Comparesthisobjectwiththespecifiedobjectfororder.Returnsanegativeinteger,zero,orapositiveintegerasthisobjectislessthan,equalto,orgreaterthanthespecifiedobject.Theimplementormustensuresgn(x.compareTo(y))==-sgn(y.compareTo(x))forallxandy.(Thisimpliesthatx.compareTo(y)mustthrowanexceptioniffy.compareTo(x)throwsanexception.)Theimplementormustalsoensurethattherelationistransitive:(x.compareTo(y)>0&&y.compareTo(z)>0)impliesx.compareTo(z)>0.Finally,theimplementormustensurethatx.compareTo(y)==0impliesthatsgn(x.compareTo(z))==sgn(y.compareTo(z)),forallz.Itisstronglyrecommended,butnotstrictlyrequiredthat(x.compareTo(y)==0)==(x.equals(y)).Generallyspeaking,anyclassthatimplementstheComparableinterfaceandviolatesthisconditionshouldclearlyindicatethisfact.Therecommendedlanguageis"Note: this class has a natural ordering that is inconsistent with equals."Intheforegoingdescription,thenotationsgn(expression)designatesthemathematicalsignumfunction,whichisdefinedtoreturnoneof-1,0,or1accordingtowhetherthevalueofexpressionisnegative,zeroorpositive.Parameters:o-theobjecttobecompared.Returns:anegativeinteger,zero,orapositiveintegerasthisobjectislessthan,equalto,orgreaterthanthespecifiedobject.Throws:ClassCastException-ifthespecifiedobject'stypepreventsitfrombeingcomparedtothisobject.</blockquote>
A interface Comparable serve par definir a ordenação padrão. Se você quer definir outras formas de ordenação (só por número, por exemplo) pode implementar um Comparator.