code: public List<T> last(final int n) {
          N.checkArgument(n >= 0, "'n' can't be negative: " + n);
  
          if (N.isNullOrEmpty(coll) || n == 0) {
              return new ArrayList<>();
          } else if (coll.size() <= n) {
              return new ArrayList<>(coll);
          } else if (coll instanceof List) {
              return new ArrayList<>(((List<T>) coll).subList(coll.size() - n, coll.size()));
          } else {
              final List<T> result = new ArrayList<>(N.min(n, coll.size()));
              final Iterator<T> iter = coll.iterator();
              int offset = coll.size() - n;
  
              while (offset-- > 0) {
                  iter.next();
              }
  
              while (iter.hasNext()) {
                  result.add(iter.next());
              }
  
              return result;
          }
      }
docs: Return at most last <code>n</code> elements.
  
  @param n
  @return