java collection sort issue -


i use simple comperator , exception , don't know do

this how call:

try {    collections.sort(this.closepositions, new positioncomperator()); } catch(exception e) {    e.printstacktrace(); } 

this comperator:

  public class positioncomperator implements comparator<dataresponse> {      @override     public int compare( dataresponse pos1, dataresponse pos2) {          if (pos1.opentime >= pos2.opentime) {             return 1;         }          else {             return -1;         }// returning 0 merge keys      }     } 

this exception:

java.lang.illegalargumentexception: comparison method violates general contract! @ java.util.timsort.mergelo(unknown source) @ java.util.timsort.mergeat(unknown source) @ java.util.timsort.mergecollapse(unknown source) @ java.util.timsort.sort(unknown source) @ java.util.timsort.sort(unknown source) @ java.util.arrays.sort(unknown source) @ java.util.collections.sort(unknown source) @ gttask.refreshidentityhistory.call(refreshidentityhistory.java:59) @ gttask.refreshidentityhistory.call(refreshidentityhistory.java:1) @ java.util.concurrent.futuretask$sync.innerrun(unknown source) @ java.util.concurrent.futuretask.run(unknown source) @ java.util.concurrent.threadpoolexecutor.runworker(unknown source) @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source) @ java.lang.thread.run(unknown source) 

the reason error when sorted 2 items changed order. should include case equal.

preferably do:

return po1.opentime - pos2.opentime; 

or do

if (pos1.opentime > pos2.opentime) {     return 1; }  else if (pos1.opentime < pos2.opentime) {     return -1; } else {     return 0; } 

Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -