java - Maintain SortedMap by value -


as know that, sortedmap maintains entries sorted keys. read many threads in forum , saw lots of example sorts sortedmap, values. however, know when put item default sortedmap not sort map again put new entry supposed be.

for example,

sortedmap<string,person> sortedmap = new treemap(); person p1 = new person("john",38); sortedmap.put(p1.getname(), p1); person p2 = new person("tom",34); sortedmap.put(p2.getname(), p2); // not sort, maintains sorted set comparing other values  person p3 = new person("susan",21); sortedmap.put(p3.getname(), p3); // not sort, maintains sorted set comparing other values 

in many threads in forum, saw many many code sorts sortedmap values calling sort method like:

sortedmap.sort(sortedmap.entries());  

this or else method being called values sorted.

but, need map implementation keeps values sorted without calling sort method explained in above. example, in above code can call firstkey() method; instead need call firstvalue() method.

person minimumageperson = sortedmap.firstvalue(). system.out.println(minimumageperson.getname()); // should print "susan" 

sortedset not appropriate requiremenets because can put new objects ( person ) key values in map, these added entries should override existing objects ( need map ):

person p4 = new person("susan",39); sortedmap.put(p4.getname(),p4); person newminimumageperson = sortedmap.firstvalue();  system.out.println(newminimumageperson.getname()); // should print "tom" 

is there implementation accomplish taks or need implement sortedset myself?

often, simplest , safest way of dealing type of problem write class uses 2 different standard collections. class can offer methods need, not conforming of java.util interfaces.

given stated requirements, use sortedmap contain values, combined hashmap mapping keys values. prevent duplicate keys, put key-value pair in hashmap, checking put result. if key present, remove old value sortedmap before adding new value.

if have additional requirements, particular design may not cover everything, concept of combining java.util structures useful one.


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -