JAVA List和Map切割工具详解
作者:qq_38524629 时间:2023-01-27 11:32:42
使用PHP开发的同学都知道array_chunk函数,其作用是将数据进行切割分段,但是在 java中却找不到合适的给List和Map分段的函数。
在此我写了一个切割工具,分享一下
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author lanfangyi
* @version 1.0
* @since 2019/2/28 20:39
*/
public class CollectionUtil {
private CollectionUtil(){
}
/**
* 将map切成段,作用与PHP的array_chunk函数相当
*
* @param chunkMap 被切段的map
* @param chunkNum 每段的大小
* @param <k> map的key类型
* @param <v> map的value类型 如果是自定义类型,则必须实现equals和hashCode方法
* @return
*/
public static <k, v> List<Map<k, v>> mapChunk(Map<k, v> chunkMap, int chunkNum) {
if (chunkMap == null || chunkNum <= 0) {
List<Map<k, v>> list = new ArrayList<>();
list.add(chunkMap);
return list;
}
Set<k> keySet = chunkMap.keySet();
Iterator<k> iterator = keySet.iterator();
int i = 1;
List<Map<k, v>> total = new ArrayList<>();
Map<k, v> tem = new HashMap<>();
while (iterator.hasNext()) {
k next = iterator.next();
tem.put(next, chunkMap.get(next));
if (i == chunkNum) {
total.add(tem);
tem = new HashMap<>();
i = 0;
}
i++;
}
if(!CollectionUtils.isEmpty(tem)){
total.add(tem);
}
return total;
}
/**
* 将list切割
*
* @param chunkList 被分隔的数组
* @param chunkNum 每段的大小
* @param <T> List中的类型
* @return
*/
public static <T> List<List<T>> listChunk(List<T> chunkList, int chunkNum) {
if (chunkList == null || chunkNum <= 0) {
List<List<T>> t = new ArrayList<>();
t.add(chunkList);
return t;
}
Iterator<T> iterator = chunkList.iterator();
int i = 1;
List<List<T>> total = new ArrayList<>();
List<T> tem = new ArrayList<>();
while (iterator.hasNext()) {
T next = iterator.next();
tem.add(next);
if (i == chunkNum) {
total.add(tem);
tem = new ArrayList<>();
i = 0;
}
i++;
}
if(!CollectionUtils.isEmpty(tem)){
total.add(tem);
}
return total;
}
}
补充:java中List集合存放Map
list集合存放Map示例:
List<Map<String,Object>> listMap = new ArrayList<>();
Map<String,Object> map = new HashMap<String,Object>();
List<Entity> list = new ArrayList<>();
map.put("list",list);
listMap.add(map);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://blog.csdn.net/qq_38524629/article/details/90139569
标签:JAVA,List,Map
0
投稿
猜你喜欢
Java中的静态绑定和动态绑定详细介绍
2023-01-18 19:54:06
JPype实现在python中调用JAVA的实例
2022-08-24 03:19:52
unity通过Mesh网格绘制图形球体
2023-12-12 08:08:21
解析.NET中几种Timer的使用
2023-05-21 17:27:53
java基础的详细了解第八天
2023-11-08 10:47:47
Java中ClassLoader类加载学习总结
2022-08-26 18:13:42
Java项目实现寻找迷宫出路
2022-10-05 14:08:46
C#实现基于IE内核的简单浏览器完整实例
2021-12-04 02:08:02
Java中synchronized的优化措施
2022-10-09 18:19:05
Android Studio 多层级 Module 对 aar 引用问题解决方法
2023-08-06 19:41:27
SpringBoot搭建go-cqhttp机器人的方法实现
2022-11-17 23:58:40
C#多线程异步执行和跨线程访问控件Helper
2022-02-09 12:24:32
eclipse+maven+spring mvc项目基本搭建过程
2022-12-18 03:50:52
Android日期时间格式国际化的实现代码
2023-08-28 04:44:42
Java操作文件输出为字符串以及字符串输出为文件的方法
2022-02-01 19:32:45
Java 替换word文档文字并指定位置插入图片
2023-08-12 22:02:25
Java中Request请求转发详解
2021-05-25 20:53:42
详解Android应用中ListView列表选项栏的编写方法
2023-09-03 15:01:25
Android onClick方法与setOnClickListener方法对比
2022-02-09 22:21:40
Java实现的对称加密算法AES定义与用法详解
2021-10-16 22:16:05