该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

sign

介绍

这里是将json格式的字符串转化为按字母升序或降序排列生成签名原串,使用选择排序算法进行排序

软件架构

  1. 使用阿里巴巴的fastJson框架设置json格式的数据
  2. 这里,是用到了选择排序算法
    • 升序算法
  /**
       * Created By zby on 14:55 2019/3/6
       * 获取升序排序后的值
       *
       * @param jsonObject json格式的数据
       * @param isAsc      true 升序  false 降序
       */
      public static List<String> keySort(JSONObject jsonObject, boolean isAsc) {
          if (null == jsonObject && jsonObject.size() <= 0) {
              return null;
          }
          List<String> keyList = new ArrayList<>(jsonObject.keySet());
          if (null != keyList && keyList.size() > 0) {
              for (int i = 0; i < keyList.size() - 1; i++) {
                  for (int j = 0; j < keyList.size() - (i + 1); j++) {
                      KeysUtil test = new KeysUtil(keyList, j).invoke();
                      String currKey = test.getCurrKey();
                      String afterKey = test.getAfterKey();
                      char[] currKeyChars = test.getCurrKeyChars();
                      for (int k = 0; k < currKeyChars.length; k++) {
                          //保证当前字符是有效字符,即在26个字母之中,不在,直接放到后面
                          if (CharUtil.validateLetter(currKeyChars[k])) {
                              // 小于,不用排序,直接跳出
                              if (currKeyChars[k] < afterKey.charAt(k)) {
                                  if (isAsc) {
                                      break;
                                  } else {
                                      if (CharUtil.validateLetter(afterKey.charAt(k))) {
                                          keyList.set(j, afterKey);
                                          keyList.set(j + 1, currKey);
                                      }
                                  }
                                  //  等于,跳过此循环
                              } else if (currKeyChars[k] == afterKey.charAt(k)) {
                                  continue;
                                  //  大于,看清而定
                              } else {
                                  if (isAsc) {
                                      if (CharUtil.validateLetter(afterKey.charAt(k))) {
                                          keyList.set(j, afterKey);
                                          keyList.set(j + 1, currKey);
                                      }
                                  }
                                  break;
                              }
                          } else {
                              if (isAsc) {
                                  keyList.set(j, afterKey);
                                  keyList.set(j + 1, currKey);
                              }
                              break;
                          }
                      }
                  }
              }
          }
          return keyList;
      }

安装教程

  1. 本项目以Java为开发语言,idea为开发工具,需要确保你的电脑上有这两个工具

使用说明

  1. 本项目是学习所用,不作为任何的商业用途

空文件

简介

这里是将json格式的字符串转化为按字母升序或降序排列生成签名原串,使用选择排序算法进行排序 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化