java - Map<String, Integer> and Map<Integer ,String> sorting -


i trying resolve sorting map , contains huge data(1000k). there efficient way sorting these maps ? below code snippet.

    map<integer, string> mymap1 = new hashmap<integer, string>();     map<string,integer>  mymap2 = new hashmap< string,integer>();      list <entry<integer,string>> lst1 = new arraylist<entry<integer,string>>(mymap1.entryset());     collections.sort(lst1, new comparator<entry<integer,string>>(){         @override         public int compare(entry e1, entry e2)         {             return ((string) e1.getvalue()).compareto((string) e2.getvalue());         }}     );       list <entry<string,integer>> lst2 = new arraylist<entry<string,integer>>(mymap2.entryset());             collections.sort(lst2, new comparator<entry<string,integer>>(){         @override         public int compare(entry e1, entry e2)         {             return ((integer) e1.getvalue()).compareto((integer) e2.getvalue());         }}     ); 

imo priority queue can approach:

map<integer, string> mymap1 = new hashmap<integer, string>(); priorityqueue<entry<integer, string>> pq = new priorityqueue<map.entry<integer,string>>(mymap1.size(), new comparator<entry<integer, string>>() {     @override     public int compare(entry<integer, string> arg0, entry<integer, string> arg1) {         return arg0.getvalue().compareto(arg1.getvalue());     } }); pq.addall(mymap1.entryset()); while (!pq.isempty()) {     system.out.println(pq.poll()); } 

also google guava can option provides bimap implementations can inversed, , sort on inversed map keys.

 map<integer, string> mymap1 = new hashmap<integer, string>();     // insert values in mymap     map<string,integer>  mymap2 = mymap1.inverse();     sortedmap<integer, character> sortedinversed = new treemap<integer, character>(mymap2 ); 

Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -