import java.util.*;
import java.io.*;
import java.util.stream.*;
class Ideone
{
public static void main
(String[] args
) { Map
<String, String
> unsortMap
= new HashMap
<String, String
>(); unsortMap.put("./cq:dialog/content/items/tabs/items/tab1/items/columns/items", "40");
unsortMap.put("./cq:dialog/content", "80");
unsortMap.put("./cq:dialog", "75");
unsortMap.put("./cq:dialog/content/items/tabs/items/tab2/items/columns/items", "40");
unsortMap.put("./cq:dialog/content/sling:resourcetype", "granite/ui/components/coral/foundation/container");
Map
<String, String
> sortedMap
= unsortMap.
entrySet().
stream() .
sorted((a, b
) -> a.
getKey().
length() - b.
getKey().
length()).
collect(Collectors.
toMap(Map.Entry::getKey,
Map.Entry::getValue,
(oldValue, newValue
) -> oldValue, LinkedHashMap
::new)); final Set<String> keys = sortedMap.keySet();
keys.
forEach(System.
out::println
); }
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5pby4qOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS4qOwoKY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBNYXA8U3RyaW5nLCBTdHJpbmc+IHVuc29ydE1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpOwogICAgICAgIHVuc29ydE1hcC5wdXQoIi4vY3E6ZGlhbG9nL2NvbnRlbnQvaXRlbXMvdGFicy9pdGVtcy90YWIxL2l0ZW1zL2NvbHVtbnMvaXRlbXMiLCAiNDAiKTsKICAgICAgICB1bnNvcnRNYXAucHV0KCIuL2NxOmRpYWxvZy9jb250ZW50IiwgIjgwIik7CiAgICAgICAgdW5zb3J0TWFwLnB1dCgiLi9jcTpkaWFsb2ciLCAiNzUiKTsKICAgICAgICB1bnNvcnRNYXAucHV0KCIuL2NxOmRpYWxvZy9jb250ZW50L2l0ZW1zL3RhYnMvaXRlbXMvdGFiMi9pdGVtcy9jb2x1bW5zL2l0ZW1zIiwgIjQwIik7CiAgICAgICAgdW5zb3J0TWFwLnB1dCgiLi9jcTpkaWFsb2cvY29udGVudC9zbGluZzpyZXNvdXJjZXR5cGUiLCAiZ3Jhbml0ZS91aS9jb21wb25lbnRzL2NvcmFsL2ZvdW5kYXRpb24vY29udGFpbmVyIik7CiAgICAgICAgTWFwPFN0cmluZywgU3RyaW5nPiBzb3J0ZWRNYXAgPSB1bnNvcnRNYXAuZW50cnlTZXQoKS5zdHJlYW0oKQogICAgICAgICAgICAgICAgLnNvcnRlZCgoYSwgYikgLT4gYS5nZXRLZXkoKS5sZW5ndGgoKSAtIGIuZ2V0S2V5KCkubGVuZ3RoKCkpLmNvbGxlY3QoQ29sbGVjdG9ycy50b01hcChNYXAuRW50cnk6OmdldEtleSwKICAgICAgICAgICAgICAgICAgICAgICAgTWFwLkVudHJ5OjpnZXRWYWx1ZSwgKG9sZFZhbHVlLCBuZXdWYWx1ZSkgLT4gb2xkVmFsdWUsIExpbmtlZEhhc2hNYXA6Om5ldykpOwogICAgICAgIGZpbmFsIFNldDxTdHJpbmc+IGtleXMgPSBzb3J0ZWRNYXAua2V5U2V0KCk7CiAgICAgICAga2V5cy5mb3JFYWNoKFN5c3RlbS5vdXQ6OnByaW50bG4pOwogICAgfQp9