Blog
Skip to end of metadata
Go to start of metadata

Gyakori feladat, hogy számokat tartalmazó szövegeket kell rendeznünk természetes módon, amely azt eredményezi, hogy a szövegként tárolt számok rendezése nem lesz megfelelő: az ["1","3","21"] számok szövegként való rendezése után ["1","21","3"] sorrendbe kerülnek. A szűkebb Java nem ad erre eszközt és sajnos tágabb körben is probléma marad ez a probléma: nincs erre megoldás még a népszerű Jakarta Commons gyűjteményben sem. Ezt a problémát járta körül az In My Opinion blog írója is, s az alábbi megoldásokat találta:

Az oldalon készítettek egy tesztkörnyezetet, amelyben kipróbálták a felsorolt implementációkat, s az alábbi eredményeket kapták:

Pierre-Luc PaourNaturalOrderComparator453msEléggé gyors
Stephen FriedrichNaturalComparator4828msLocale szerint rendez, de lassú
Stephen FriedrichNaturalComparatorAscii360msA leggyorsabb, de csak ASCII
Stephen FriedrichNaturalComparatorIgnoreCaseAscii500msEléggé gyors, de case-insensitive, de csak ASCII
Tim FennellHumaneStringComparator 4797msOktatásra kiváló
Natív JavaString.compareTo()235ms-
      
      
Page viewed times