code: static private <T>  void fillList(final int listsToAdd, Stack<List<T>> reusableLists, List<List<T>> aSplit)
      {
          for(int j = 0; j < listsToAdd; j++)
              if(reusableLists.isEmpty())
                  aSplit.add(new ArrayList<>());
              else
                  aSplit.add(reusableLists.pop());
      }
docs: Add lists to a list of lists
  @param <T> the content type of the list
  @param listsToAdd the number of lists to add
  @param reusableLists available pre allocated lists for reuse
  @param aSplit the list of lists to add to