Win a copy of Svelte and Sapper in Action this week in the JavaScript forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Bear Bibeault
  • Junilu Lacar
Sheriffs:
  • Jeanne Boyarsky
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • salvin francis
  • Frits Walraven
Bartenders:
  • Scott Selikoff
  • Piet Souris
  • Carey Brown

Tree Map Sort & foreign languages

 
Ranch Hand
Posts: 111
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have a tree map that I want to sort on the key. Works fine as long as you use english. When you get into other languages that have accents the sort does not work correctly. In java script there is a call you can use for a more natural search called localeCompare.

Is there a way in java to make a TreeMap have a more natural search?



sortedMap returns btest, ctest, ztest in the correct order. Now if you add a character like optList.put("ét", "1") to the hashmap ét and run it through the tree map it always returns it at the end of the list instead of between ctest & ztest key.

Can a TreeMap do a natural sort that will understand that order of the keys returned should be btest, ctest, ét, ztest?

Thanks
 
Marshal
Posts: 25823
69
Eclipse IDE Firefox Browser MySQL Database
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes, because you can create a TreeMap which uses a Comparator which you define.

If you check out the API documentation for Comparator you will see that one of the standard classes which implements it is Collator. So for example if you wanted to collate strings according to the rules for French (as per your example), you could use

to make that happen. Like this:
 
E Robb
Ranch Hand
Posts: 111
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Brilliant thank you!
 
Switching from electric heat to a rocket mass heater reduces your carbon footprint as much as parking 7 cars. Tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
    Bookmark Topic Watch Topic
  • New Topic