code: @Override
      public int compare(String o1, String o2) {
          if (C_ELEMENT_SYMBOL.equals(o1)) {
              if (C_ELEMENT_SYMBOL.equals(o2)) {
                  return 0;
              } else {
                  return -1;
              }
          } else if (H_ELEMENT_SYMBOL.equals(o1)) {
              if (C_ELEMENT_SYMBOL.equals(o2)) {
                  return 1;
              } else if (H_ELEMENT_SYMBOL.equals(o2)) {
                  return 0;
              } else {
                  return -1;
              }
          } else {
              if (C_ELEMENT_SYMBOL.equals(o2) || H_ELEMENT_SYMBOL.equals(o2)) {
                  return 1;
              } else {
                  return ((String) o1).compareTo((String) o2);
              }
          }
      }
docs: Returns a negative if o1 comes before o2 in a molecular formula,
  returns zero if they are identical, and positive if o1 comes
  after o2 in the formula.