java - TreeMap doesn't sort properly in this case -


sequence of statements copy hashmap treemap

private map<string,bitmap> imagefilexx= new hashmap<string,bitmap>();  //assuming map has values printmap(imagefilexx); treemap<string,bitmap> imagefilexxs; imagefilexxs= new treemap<string,bitmap>(imagefilexx); printmap(imagefilexxs); 

function display above map:

public static void printmap(map<string, bitmap> map) {         (map.entry entry : map.entryset()) {             system.out.println("key : " + entry.getkey());         }     } 

input:

key : http://myserver.com/myfolder/imagedesc/imagedesc%20p7.png   key : http://myserver.com/myfolder/imagedesc/imagedesc%20p1.png  key : http://myserver.com/myfolder/imagedesc/imagedesc%20p5.png  key : http://myserver.com/myfolder/imagedesc/imagedesc%20p3.png  key : http://myserver.com/myfolder/imagedesc/imagedesc%20p11.png  key : http://myserver.com/myfolder/imagedesc/imagedesc%20p9.png  

current o/p:

key : http://myserver.com/myfolder/imagedesc/imagedesc%20p1.png key : http://myserver.com/myfolder/imagedesc/imagedesc%20p11.png //11 should displayed in last  key : http://myserver.com/myfolder/imagedesc/imagedesc%20p3.png  key : http://myserver.com/myfolder/imagedesc/imagedesc%20p5.png key : http://myserver.com/myfolder/imagedesc/imagedesc%20p7.png key : http://myserver.com/myfolder/imagedesc/imagedesc%20p9.png  

expected o/p:

key : http://myserver.com/myfolder/imagedesc/imagedesc%20p1.png key : http://myserver.com/myfolder/imagedesc/imagedesc%20p3.png  key : http://myserver.com/myfolder/imagedesc/imagedesc%20p5.png key : http://myserver.com/myfolder/imagedesc/imagedesc%20p7.png key : http://myserver.com/myfolder/imagedesc/imagedesc%20p9.png key : http://myserver.com/myfolder/imagedesc/imagedesc%20p11.png 

it sorting lexicographically (the default sort method).

you'll have define own implementation of natural sort order. constructor of treemap allows pass in custom comparator.


Comments

Popular posts from this blog

c# - Operator '==' incompatible with operand types 'Guid' and 'Guid' using DynamicExpression.ParseLambda<T, bool> -