执檀月夜游 2022-12-02 16:21 采纳率: 100%
浏览 19
已结题

Java 自定义泛型方法

我有如下一个方法,问:如何将该方法改成泛型方法,接收任意类型的入参,并返回对应类型的出参,就是将方法入参中指定的 IlsGoods 类替换成任意类型

    /**
     * 拆分集合
     *
     * @param ilsGoodsList    目标集合
     * @param sonSize         子集合大小
     * @return
     */
    private List<List<IlsGoods>> splitSet(List<IlsGoods> ilsGoodsList, int sonSize) {
        //分割的份数
        final int copies = (ilsGoodsList.size() + sonSize - 1) / sonSize;
        //映射分割
        List<List<IlsGoods>> sonListTwo = IntStream.range(0, copies)
                .boxed()
                .parallel()
                .map(i -> {
                    int fromIndex = i * sonSize;
                    int toIndex = sonSize;
                    if (i + 1 == ilsGoodsList.size()) {
                        toIndex = ilsGoodsList.size() - fromIndex;
                    }
                    return ilsGoodsList.stream().skip(fromIndex).limit(toIndex).collect(Collectors.toList());
                }).collect(Collectors.toList());
        return sonListTwo;
    }

  • 写回答

3条回答 默认 最新

  • Huazie 优质创作者: 编程框架技术领域 2022-12-02 16:30
    关注

    这样就可以了

    private <T> List<List<T>> splitSet(List<T> ilsGoodsList, int sonSize) {
            //分割的份数
            final int copies = (ilsGoodsList.size() + sonSize - 1) / sonSize;
            //映射分割
            List<List<T>> sonListTwo = IntStream.range(0, copies)
                    .boxed()
                    .parallel()
                    .map(i -> {
                        int fromIndex = i * sonSize;
                        int toIndex = sonSize;
                        if (i + 1 == ilsGoodsList.size()) {
                            toIndex = ilsGoodsList.size() - fromIndex;
                        }
                        return ilsGoodsList.stream().skip(fromIndex).limit(toIndex).collect(Collectors.toList());
                    }).collect(Collectors.toList());
            return sonListTwo;
        }
    

    如有帮助,欢迎采纳哈!

    在这里插入图片描述

    本人的开源项目,欢迎star支持下!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月21日
  • 已采纳回答 1月13日
  • 创建了问题 12月2日