まずこんな感じのComparatorを作ります(匿名クラスでもいい)。
java
1class SlashComparator implements Comparator<String> {
2
3 @Override
4 public int compare(String o1, String o2) {
5 // 通常Comparatorは昇順(小さい方から順に並べる)に並べるようにするため、
6 // 降順に並べるためには、このように引数の順番を逆にする
7 return Integer.compare(o2.split("/").length, o1.split("/").length);
8 }
9}
このコンパレータに従うようなTreeMapを作成し、元のMapをまるごと突っ込めば完成です。
java
1Map<String, Integer> map = new TreeMap<>(new SlashComparator());
2map.putAll(originalMap);
単純に「並べ替えたあとのキーのリストがほしい」というのであれば、keySet()からリストを作成してこのComparatorを使ってソートすればOKです。
java
1List<String> list = new ArrayList<>();
2list.addAll(originalMap.keySet());
3Collections.sort(list, new SlashComparator());