code: public static <T> List<T> mergeListInOrder(List<T> one, List<T> two) {
          List<T> results = new ArrayList<>();
  
          if (isAllNull(one, two)) return null;
  
          if (isAllNotNull(one, two)) {
  
              int start = 0;
              for (int i = 0; i < one.size(); i++) {
                  T t = one.get(i);
                  int index = indexOf(start, two, t);
                  if (index == -1 || index == start) {
                      results.add(t);
                      start += 1;
                  } else {
  
                      results.addAll(two.subList(start, ++index));
                      start = index;
                  }
              }
  
              if (start < two.size()) {
                  results.addAll(two.subList(start, two.size()));
              }
  
          } else {
              results.addAll(findFirstNotNull(one, two));
          }
  
          return results;
      }
docs: /*
  合并表达式集合