/**
   * 按步长从一个ArrayList<T>中取出值,成为一个新的ArrayList<T> <br>
   * 注意,第一个无论如何都会选取第一个元素
   *
   * @param arrayList 原始ArrayList<T>
   * @param stepLength 每隔多少取一个值
   *     <pre>
   * 例如:
   * 原始ArrayList<T>:[yinshi,nichao,nileader,test,name,abc]
   * stepLength = 2,那么返回
   * [yinshi,nileader,name]
   * </pre>
   */
  public static <T> ArrayList<T> select(ArrayList<T> arrayList, int stepLength) {

    ArrayList<T> arrayListNew = new ArrayList<T>();
    if (CollectionUtil.isBlank(arrayList)) {
      return arrayListNew;
    }

    stepLength = IntegerUtil.defaultIfSmallerThan0(stepLength, 1);
    if (1 == stepLength) return arrayList;

    int index = 0;
    while (index + stepLength < arrayList.size()) {
      arrayListNew.add(arrayList.get(index));
      index += stepLength;
    }
    arrayListNew.add(arrayList.get(index));

    return arrayListNew;
  }