code: private void getNetData() {
          int nTime = lastTimeDischarge.length;
          int length = lastTimeDischarge[0].length;
          HashMap<Integer, double[]> tmpHMDis = new LinkedHashMap<Integer, double[]>();
          HashMap<Integer, double[]> tmpHMFill = new LinkedHashMap<Integer, double[]>();
          // order the outpt.
  
          int netLength = networkPipes.length;
          double[] one = new double[netLength];
          double[] two = new double[netLength];
          for( int i = 0; i < netLength; i++ ) {
              one[i] = i;
              two[i] = networkPipes[i].getId();
          }
  
          QuickSortAlgorithm sort = new QuickSortAlgorithm(pm);
          sort.sort(two, one);
  
          for( int i = 0; i < length - 1; i++ ) {
              int index = (int) one[i];
              tmpHMDis.put(networkPipes[index].getId(), new double[]{lastTimeDischarge[0][index]});
              tmpHMFill.put(networkPipes[index].getId(), new double[]{lastTimeFillDegree[0][index]});
  
          }
          discharge.put(first, tmpHMDis);
          fillDegree.put(first, tmpHMFill);
          DateTime tmp = first;
          for( int i = 1; i < nTime; ++i ) {
              tmp = tmp.plusMinutes(dt);
              tmpHMDis = new LinkedHashMap<Integer, double[]>();
              tmpHMFill = new LinkedHashMap<Integer, double[]>();
              for( int j = 0; j < length - 1; j++ ) {
                  int index = (int) one[j];
                  tmpHMDis.put(networkPipes[index].getId(), new double[]{lastTimeDischarge[i][index]});
                  tmpHMFill.put(networkPipes[index].getId(), new double[]{lastTimeFillDegree[i][index]});
  
              }
              discharge.put(tmp, tmpHMDis);
              fillDegree.put(tmp, tmpHMFill);
          }
      }
docs: /*
  Fill the two output HashMap.