集合工具类

Java使用CollectionUtils集合工具类 CollectionUtils 是 Apache Commons Collections 库提供的集合操作工具类,主要用于简化 List、Set 等集合的常见操作。与 JDK 自带的 Collections 工具类不同,它提供了更多增强功能且能更好地处理 null 值。 阅读详情

集合工具类


import com.google.common.collect.Lists;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author windbird
 * @Date 2023/4/26 16:25
 * @ClassName ListLimitUtils
 * @desc: 集合分批处理
 */
public class ListUtil {
    private Integer listPage = 0;
    private Integer listPageSize = 10;

    public ListUtil() {
    }

    public ListUtil(Integer listPageSize) {
        this.listPageSize = listPageSize;
    }

    /**
     * 对集合进行批处理 防止当前集合过大
     *  List<?> NameList = Arrays.asList("张三", "李四","王五", "中农", "公三", "sugar", "red", "wind", "oso", "兴业","zh");
     *  ["张三","李四","王五"]
     * ["中农","公三","sugar"]
     * ["red","wind","oso"]
     * ["兴业","zh"]
     * @example:
     *   for(List<?> resultList:resultBatchList){
     *       createBatch(resultList)
     *   }
     *
     * @param sourceList
     * @return
     */
    public  List<List<?>> getInputListToBatches(List<?> sourceList){
        List<List<?>> resultBatchList =  new ArrayList<>(8);
        if(!CollectionUtils.isEmpty(sourceList)){
           int inputListSize = sourceList.size();
           if(inputListSize<=listPageSize){
               resultBatchList.add(sourceList);
            }else{
               listPage= inputListSize % listPageSize==0 ? inputListSize / listPageSize : inputListSize / listPageSize+1;
               for (int i = 0; i <listPage; i++) {
                   int startIndex = i * listPageSize;
                   int endIndex = Math.min(startIndex+listPageSize,inputListSize);
                   resultBatchList.add(sourceList.subList(startIndex,endIndex));
               }
           }
       }
       return resultBatchList;
    }



    /**
     * @desc  对集合进行分页
     * @param sourceList
     * @param page
     * @param pageSize
     * @return
     */
    public List<?> subListPageStream(List<?> sourceList, int page, int pageSize) {
        if(!CollectionUtils.isEmpty(sourceList)){
            int count = sourceList.size();
            int totalPage = count % pageSize == 0 ? count / pageSize : count / pageSize + 1;
            int startIndex = page<=0?0:(page>totalPage?(totalPage-1)*pageSize :(page-1)*pageSize);
            return sourceList.stream().skip(startIndex).limit(pageSize).collect(Collectors.toList());
        }
       return new ArrayList<>();
    }

    /**
     * @desc  对集合进行分页
     * @param sourceList
     * @param page
     * @param pageSize
     * @return
     */
    public List<?> subListPage(List<?> sourceList, int page, int pageSize) {
        if(!CollectionUtils.isEmpty(sourceList)){
            int count = sourceList.size();
            int totalPage = count % pageSize == 0 ? count / pageSize : count / pageSize + 1;
            int startIndex = page<=0?0:(page>totalPage?(totalPage-1)*pageSize :(page-1)*pageSize);
            return sourceList.subList(startIndex,Math.min(startIndex+pageSize,count));
        }
       return new ArrayList<>();
    }

    /**
     * 对集合分页
     * @param sourceList
     * @param page
     * @param pageSize
     * @return
     */
    public List<?> partitionPage(List<?> sourceList,int page, int pageSize) {
        List<? extends List<?>> partition = Lists.partition(sourceList, pageSize);
        int pages = partition.size();
        page = page <= 0 ? 0 : (page <= (pages - 1) ? page : (pages - 1));
        return partition.get(page);
    }

}

<dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>28.0-jre</version>
        </dependency>
`java


Java零基础-集合:集合框架中的工具类 Java是一种广泛使用的编程语言,而集合框架是Java开发中常用的工具之一。集合框架包含了一系列的接口、类和算法,用于存储和操作对象。在集合框架中,工具类扮演着重要的角色,为开发人员提供了便利的方法和功能。本文将介绍集合框架中的工具类,包括其简介、源代码解析、应用场景案例、优缺点分析和类代码方法介绍。同时,还会提供具体的Java代码测试用例,以便读者更好地理解和应用这些工具类。本文将重点介绍Java集合框架中的工具类,旨在帮助读者了解和使用这些工具类。 阅读详情

相关推荐

Flink 作业报错——TaskManager连接不上

Flink 作业报错——TaskManager连接不上

lm223的博客 1901

Java 集合工具类

工具类是 Java 集合操作的“瑞士军刀”,提供了排序、查找、同步化、不可修改化等实用功能,极大简化了集合处理代码。掌握其核心方法,能显著提高开发效率,同时保证代码的安全性和可读性。实际开发中,需根据场景灵活选择合适的方法,尤其注意线程安全和不可修改集合的特性。点击此处进入练习题。

2501_91241024的博客 1042

微信小程序内容安全审核:从API调用到工程化落地的全流程实践

内容安全是互联网应用开发中的基础性技术环节,尤其在用户生成内容(UGC)场景下,它直接关系到平台的合规性与用户体验。其核心原理通常结合了关键词过滤、自然语言处理(NLP)和计算机视觉(CV)等技术,通过AI模型对文本、图像、音频进行多维度风险识别。这项技术的价值在于,它不仅是满足监管要求的必要手段,更是构建健康社区生态、保护品牌声誉、实现产品长期稳定运营的基石,广泛应用于社交、电商、社区论坛等各类UGC平台。本文聚焦于微信小程序生态,深入剖析其官方提供的内容安全解决方案,详细解读如何将文本同步检测与多媒体异

weixin_28622215的博客 457

java 集合 之 集合工具类Collections

集合知识补充,让集合操作变得简单高效

qq_73698057的博客 1343

软件各项会议评审意见模版

读梅老师主编的书,觉得评审意见模板很有参考价值和实用价值,帮梅老师安利一波,顺便记一下笔记。 《系统/子系统规格说明》评审意见模板 20XX年XX月XX日,XXX(主管机关)在XXX(会议地点)主持召开了“《XXX(产品名称)系统规格说明》评审会”。参加会议的有XXX机关,XXX院校,XXX研究所共XX名代表(名单见附件1),会议成立了评审组(名单见附件2),听取了XXX(单位)做的《XXXX报告》。经讨论质询,形成评审意见如下: 系统规格说明对系统的研制目标和范围、工作状态、运行方式以及所要满足的能力需

赵星汉同学的博客 1万+

Android 16强制横竖屏设置

但开发者端的响应却相对滞后,特别是中小型开发团队受限于大屏设备市场渗透率(截至2023年Q2,Android平板全球激活量约1.2亿台,不足手机设备5%)及开发成本考量,适配优先级普遍偏低。这种适配滞后已形成恶性循环——开发者因设备基数不足降低适配意愿,而用户体验缺陷又反向抑制大屏设备的市场接受度。要破解这一困局,既需要Google持续优化Jetpack Compose等现代化UI工具链,更需要建立开发者激励体系,通过应用商店流量倾斜、开发补贴等经济手段提升适配投入产出比。再不肯好好适配大屏设备?

xiangzhihong8的专栏 979

Map集合、集合工具类Collections

目录 Map集合 Map集合概述和特点 Map集合的功能 Map集合的遍历-键值对对象找键和值 Map集合的遍历-键找值 Map集合案例:键是String,值是Student LinkedHashMap的概述和使用 TreeMap集合 集合嵌套 HashMap嵌套HashMap HashMap嵌套ArrayList ArrayList嵌套HashMap HashMap和Hashtable的区别 Collections工具类 常见方法 Map集合 Map集合概述和特点

qq_56930747的博客 2068

爬虫逆向:Hook 技术原理与实战

Hook 技术​(钩子技术)是一种通过拦截和修改程序执行流程的技术手段。它允许开发者在目标程序的特定位置插入自定义代码,以改变程序的默认行为或获取运行时信息。Hook 技术广泛应用于调试、逆向工程、性能分析、安全防护等领域。Hook 技术在爬虫逆向中非常有用,能够有效获取和修改目标程序的数据。通过合理使用 Hook 工具和技术,可以显著提升爬虫的效率和成功率。但使用时需注意法律和道德问题,确保行为合规。

数据知道的博客 1万+

java集合工具类

开发工具与关键技术:MyEclipse 10、java语言、 作者:邓李庆 撰写时间: 2019年5月28日 下面小编给大家java的集合工具类:Collections,java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里面提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象实现同步控制等方法。 排序操作: 修饰符 返回值类型 ...

博客 5148

STM32开发 -- LIS3DH三轴加速度计开发详解

这次要讲一下LIS3DH三轴加速度计的开发使用,之前是有讲过 MPU6050开发 的,但当时是在Linux下做的。额,还是个半成品,哈哈。现在手边有STM32的开发板,可以实实在在的来实现以下卡尔曼滤波了。 一、LIS3DH初识 依照惯例,先看一下手册,大致先了解一下,LIS3DH是什么模块。 下载:LIS3DH datasheet 1、描述 LIS3DH是一款超低功耗高性能三轴线性加速度计,属于...

不积跬步,无以至千里 2万+

手把手教你学Simulink——电机电磁兼容与可靠性场景示例:基于Simulink的电机噪声抑制控制仿真

本文带你完成了电机噪声抑制控制的Simulink仿真,实现了:✅ 揭示了电磁噪声从电流到声音的传递机理✅ 搭建了含死区、固定载波等噪声源的高保真模型随机PWM(消除啸叫)谐振控制器(抑制5/7次嗡鸣)谐波注入(降低THD) ✅ 通过综合方案将噪声降低10 dB以上(感知响度减半!) ✅ 为产品静音品质提升提供可落地的控制方案。

MHD0815的博客 94

Map集合、Collections集合工具类

Map集合. Collections 集合工具类

Cocobuhui的博客 535

【气候模式降尺度】分位数增量映射(QDM)原理及MATLAB代码实现

简介QDM原理及其MATLAB代码实现

WW、forever的博客 5863

JAVA集合取交集工具类_集合交集、差集工具类

1.业务背景在日常开发中,有时会遇到需要对比两个集合来计算出两个集合的交集、差集。以此来决定之后对数据库的insert、delete、update操作。例如,在一些管理系统中配置管理员列表后,如果需要更新管理员列表,需要从前端获取新管理员列表,比对数据库中旧有的管理员列表,然后决定哪些集合需要insert入数据库,哪些需要从数据库中delete。以上是业务背景的简单介绍,但是如果是一些数据规模比较...

weixin_29290947的博客 3245

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

工具类篇2——集合工具类

集合工具类 工具类全都是阿里代码规范与SonalLint扫描通过的哦,可以放心使用 将集合转换为以指定分隔符分隔的字符串【toString()】 将已被固定字符分隔成的字符串拆分为指定类型集合【get***()】 获取集合中复杂对象某个属性并整理为集合【get***()】 比较两个复杂或基本类型集合对结果返回交集【compareToArray***()】 获取集合中重复的对象集合并去重【getRepeat()】 判断Map与Collection对应对象是否为空【isEmpty(), isNotEmpty(

taotaojs的博客 463

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java集合常用的工具类

这里整理一个java集合中常用的一个工具类具体有如下几个功能 1.取集合中对象的某两个属性封装成map,一个属性作为key,一个属性作为value 2.取集合对象中的某一个属性值封装成List 3.取集合对象中的某一元素用某一个分隔符隔开组合成一个字串 4.转换Collection所有元素(通过toString())为String, 中间以 separator分隔 5.转换Collect

飞血泪无痕的博客 5061

集合——工具类

Collections类: 用于操作集合的工具类,它的出现给集合操作提供了更多的功能。这个类不需要创建对象,内部提供的都是静态方法。 Collections工具类中常用的静态方法: boolean addAll(list,elements)将指定元素添加到指定的Collection集合中 int binarySearch(list,value) 使用二分搜索法(又叫做折半查找)查找

整理记录 607

java中集合工具类

是 Java 集合框架的核心工具类,覆盖了排序、查找、同步、不可变集合等高频操作。熟练使用其方法可以显著提升代码效率和健壮性。对于更复杂的需求(如函数式操作、扩展集合类型),可结合 Guava 等第三方库。

2402_83164836的博客 443

常用的一些集合工具类

目录前言`jdk` 自带的 `Collections` 集合工具类常用方法 前言 Java 集合工具类分为两种,一种是 jdk 自带的,一种是第三方提供的(要去他们官网下 jar包,然后导入使用) jdk 自带的 Collections 集合工具类常用方法 该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象实现同步控制等方法。这个类不需要创建对象,内部提供的都是静态方法 将所有指定的元素添加到指定的集合 addAll(Collection<? super T>

桐花思雨 1955

Java集合工具类

Java集合工具类是Java编程语言中最常用的工具之一。Java集合框架提供了一套标准的接口和类,用于处理集合数据类型,如列表、集合、队列和映射等。Java集合框架提供了一组通用的工具类,用于提供集合操作的功能。在本篇技术博客中,我们将详细介绍Java集合工具类,包括使用场景、常用方法和示例代码等。

hj1993的博客 893

java集合处理工具类

package com.huofutp.cloud.oa.crm.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.ArrayList; import java.util

qq_42228663的博客 393

【Java基础】——集合工具类Collections和数组工具类Arrays

android培训------我的java笔记,期待与您交流! 一、集合工具类Collections 1、什么是Collections? Collections是对集合框架的一个工具类。它里边的方法都是静态的,不需要创建对象。并未封装特有数据。在Collections工具类中大部分方法是用于对List集合进行操作的,如比较,二分查找,随机排序等。 2、常见操作 ①查找 T ma

lucas的编程之旅 4056

集合之Collections——集合的工具类

集合的工具类(Collections):区分于Collection 一、引入:大家是不是觉得Collection和Collections很相似呢? 笔试题:说出Collection与Collections的区别? Collection是一个单列集合的根接口。 Collections是操作集合对象的一个工具类。 二、Collections的常见方法: 1、对list集合进行排序

一点一滴 579
上一篇: 给实体所有字段批量反射赋值
下一篇: Docker 搭建Redis 集群之路
WindwardBird
博客等级 码龄7年 19粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值