code: public static List<String> reverse(final String[] array) {
          
          ArgUtils.notNull(array, "array");
          if(array.length == 0) {
              return new ArrayList<String>();
          }
          
          final List<String> list = Arrays.asList(array);
          Collections.sort(list, new Comparator<String>() {
              
              @Override
              public int compare(final String str1, final String str2) {
                  
                  int len1 = str1.length();
                  int len2 = str2.length();
                  
                  if(len1 != len2) {
                      // 逆順
                      return Integer.compare(len1, len2) * -1;
                  } else {
                      // 逆順
                      return str1.compareTo(str2) * 1;
                  }
              }
          });
          
          return list;
      }
docs: 辞書の逆順で並び替える
  @param array 並び替える配列
  @return
  @throws IllegalArgumentException array is null.