code: public static <T extends HierarchyEntity<T, ?>> Map<T, String> sort(List<T> datas, String property) {
      final Map<T, String> sortedMap = tag(datas, property);
      Collections.sort(datas, new Comparator<HierarchyEntity<T, ?>>() {
        public int compare(HierarchyEntity<T, ?> arg0, HierarchyEntity<T, ?> arg1) {
          String tag0 = sortedMap.get(arg0);
          String tag1 = sortedMap.get(arg1);
          return tag0.compareTo(tag1);
        }
      });
      return sortedMap;
    }
docs: 按照上下关系和指定属性排序
  
  @param datas a {@link java.util.List} object.
  @param property a {@link java.lang.String} object.
  @param <T> a T object.
  @return a {@link java.util.Map} object.