JAVA List和Map切割工具详解
程序员文章站
2022-07-08 22:34:42
使用php开发的同学都知道array_chunk函数,其作用是将数据进行切割分段,但是在 java中却找不到合适的给list和map分段的函数。在此我写了一个切割工具,分享一下import org.s...
使用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);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
推荐阅读
-
Java基础知识回顾之四 ----- 集合List、Map和Set
-
详解JAVA里面获取map的key和value的方法
-
JAVA List和Map切割工具详解
-
【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
-
Java8中forEach语句循环一个List和Map
-
Java中List<T>和List<?>的区别详解
-
【JAVA】表格数据的存储(1) 使用Map和List相结合的方式存储整张表格
-
Java_127_容器_表格数据存储_map/list_javabean和list结合存储
-
java表格数据存储-Map和List结合-Javabean List/Map结合
-
Java 164. 表格数据存储_map和list结合存储整张表 尚学堂164