欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

List常用方法汇总工具类总结(持续更新)

程序员文章站 2024-01-14 09:07:16
...

  开发中集合是最常用到的结构,所以开发过程中我们也经常会对集合进行一些操作,所以我将常用到的集合方法抽离出来作为      工具类,作为自己平时发过程中的小总结,会持续更新进来的 ~ 

  •  获取集合中的最后一个元素
  •  比较两个集合的不同元素
  •  将集合等分成固定大小的多个集合
 /**
     * 获取list中存放的最后一个元素
     * @param list
     * @param <T>
     * @return
     */
    public static <T> T getLastElement(List<T> list) {
        return list.get(list.size() - 1);
    }


    /**
     * 获取两个集合不同的元素
     * @param <T>
     * @param oneList
     * @param twoList
     * @return
     */
    public static <T> Collection<T> getDifference(List<T> oneList, List<T> twoList){
        return CollectionUtils.disjunction(oneList, twoList);
    }




    /**
     * 将一个List均分成n个list,主要通过偏移量来实现的
     *
     * @param source 源集合
     * @param limit 最大值
     * @return
     */
    public static <T> List<List<T>> averageAssign(List<T> source, int limit) {
        if (null == source || source.isEmpty()) {
            return Collections.emptyList();
        }
        List<List<T>> result = new ArrayList<>();
        int listCount = (source.size() - 1) / limit + 1;
        int remaider = source.size() % listCount; // (先计算出余数)
        int number = source.size() / listCount; // 然后是商
        int offset = 0;// 偏移量
        for (int i = 0; i < listCount; i++) {
            List<T> value;
            if (remaider > 0) {
                value = source.subList(i * number + offset, (i + 1) * number + offset + 1);
                remaider--;
                offset++;
            } else {
                value = source.subList(i * number + offset, (i + 1) * number + offset);
            }
            result.add(value);
        }
        return result;
    }

 

 

相关标签: 集合 工具类