类 ListUtils
- java.lang.Object
-
- cn.hutool.core.collection.ListUtil
-
- ai.yue.library.base.util.ListUtils
-
public class ListUtils extends cn.hutool.core.collection.ListUtilList工具类- 从以下版本开始:
- 2017年10月27日
- 作者:
- ylyue
-
-
构造器概要
构造器 构造器 说明 ListUtils()
-
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static List<com.alibaba.fastjson.JSONObject>distinct(List<com.alibaba.fastjson.JSONObject> list, String distinctKey)List - JSONObject value去重static <T> List<T>distinct(List<T> list)HashSet去重static List<com.alibaba.fastjson.JSONObject>distinctCount(List<com.alibaba.fastjson.JSONObject> list, String distinctKey, SortEnum sortEnum)List-JSONObject集合去重统计与排序static List<com.alibaba.fastjson.JSONObject>distinctCountSortSelectKeep(List<com.alibaba.fastjson.JSONObject> list, String distinctKey, SortEnum sortEnum, String keepKey, MaxOrMinEnum maxOrMinEnum)List-JSONObject集合——去重、统计、排序与元素选择性保留static <T> Tget(List<?> list, Class<T> clazz)获得List数组中对应类型的第一个值static List<List<com.alibaba.fastjson.JSONObject>>grouping(List<com.alibaba.fastjson.JSONObject> list, String key)数据分组static booleanisEmpty(List<?> list)List数组是否为空static booleanisNotEmpty(List<?> list)List数组是否不为空static List<String>keepSameValue(List<String> list, List<String> list2)保留相同值static com.alibaba.fastjson.JSONArraymerge(com.alibaba.fastjson.JSONArray array, com.alibaba.fastjson.JSONObject json, String key)将JSON集合,合并到数组的JSON集合static voidmerge(List<com.alibaba.fastjson.JSONObject> list1, List<com.alibaba.fastjson.JSONObject> list2, String key1, String key2)List合并static <T> List<T>reverse(List<T> list, Class<T> clazz)反转集合static List<com.alibaba.fastjson.JSONObject>sort(List<com.alibaba.fastjson.JSONObject> list, String sortKey, SortEnum sortEnum)List-JSONObject集合排序static <T> List<T>sortT(List<T> list, String sortField, SortEnum sortEnum)List-T集合排序static List<com.alibaba.fastjson.JSONObject>toCamelCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)JsonList属性命名策略转换-驼峰命名法static <T> List<com.alibaba.fastjson.JSONObject>toCamelCaseJsonListT(List<T> list)JsonList属性命名策略转换-驼峰命名法static List<com.alibaba.fastjson.JSONObject>toJsonList(com.alibaba.fastjson.JSONArray jsonArray)JSONArray 转 List - JSONObjectstatic List<com.alibaba.fastjson.JSONObject>toJsonList(List<Map<String,Object>> list)static <T> List<com.alibaba.fastjson.JSONObject>toJsonListT(List<T> list)static com.alibaba.fastjson.JSONObject[]toJsons(com.alibaba.fastjson.JSONArray jsonArray)JSONArray 转 JSONObject[]static com.alibaba.fastjson.JSONObject[]toJsons(String jsonString)String 转 JSONObject[]static com.alibaba.fastjson.JSONObject[]toJsons(String text, String regex, String key)String 转 JSONObject[] 示例:static com.alibaba.fastjson.JSONObject[]toJsons(List<com.alibaba.fastjson.JSONObject> list)List-JSONObject 转 JSONObject[]static <T> com.alibaba.fastjson.JSONObject[]toJsonsT(List<T> list)static <T> com.alibaba.fastjson.JSONObject[]toJsonsTAndRemoveEmpty(List<T> list)static <T> List<T>toList(com.alibaba.fastjson.JSONArray jsonArray, Class<T> clazz)static <T> List<T>toList(List<com.alibaba.fastjson.JSONObject> list, Class<T> clazz)static List<String>toList(List<com.alibaba.fastjson.JSONObject> list, String keepKey)static <T> List<T>toList(List<com.alibaba.fastjson.JSONObject> list, String keepKey, Class<T> clazz)static <T> ArrayList<T>toList(T[] array)数组转Liststatic List<String>toListAndDistinct(List<com.alibaba.fastjson.JSONObject> list, String keepKey)static <T> List<T>toListAndDistinct(List<com.alibaba.fastjson.JSONObject> list, String keepKey, Class<T> clazz)static List<com.alibaba.fastjson.JSONObject>toSnakeCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)JsonList属性命名策略转换-下划线命名法static <T> List<com.alibaba.fastjson.JSONObject>toSnakeCaseJsonListT(List<T> list)JsonList属性命名策略转换-下划线命名法static List<com.alibaba.fastjson.JSONObject>toUnderlineCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)JsonList属性命名策略转换-下划线命名法static <T> List<com.alibaba.fastjson.JSONObject>toUnderlineCaseJsonListT(List<T> list)JsonList属性命名策略转换-下划线命名法-
从类继承的方法 cn.hutool.core.collection.ListUtil
empty, indexOfAll, lastIndexOf, list, list, list, list, list, list, of, page, page, partition, reverse, reverseNew, setOrAppend, setOrPadding, setOrPadding, sort, sortByPinyin, sortByProperty, split, splitAvg, sub, sub, swapElement, swapTo, toCopyOnWriteArrayList, toLinkedList, toList, toList, toList, toList, unmodifiable
-
-
-
-
方法详细资料
-
isEmpty
public static boolean isEmpty(List<?> list)
List数组是否为空- 参数:
list- list- 返回:
- 是否为空
-
isNotEmpty
public static boolean isNotEmpty(List<?> list)
List数组是否不为空- 参数:
list- list- 返回:
- 是否不为空
-
get
public static <T> T get(List<?> list, Class<T> clazz)
获得List数组中对应类型的第一个值- 类型参数:
T- 想要的类型- 参数:
list- List数组clazz- 想要的类型Class- 返回:
- 找到的第一个值或null
-
grouping
public static List<List<com.alibaba.fastjson.JSONObject>> grouping(List<com.alibaba.fastjson.JSONObject> list, String key)
数据分组将拥有相同的 key 值的JSON数据归为一组
- 参数:
list- 要处理的集合key- 分组依据- 返回:
- 分组后的list
-
keepSameValue
public static List<String> keepSameValue(List<String> list, List<String> list2)
保留相同值- 参数:
list- 循环第一层list2- 循环第二层- 返回:
- 处理后的list
-
merge
public static com.alibaba.fastjson.JSONArray merge(com.alibaba.fastjson.JSONArray array, com.alibaba.fastjson.JSONObject json, String key)将JSON集合,合并到数组的JSON集合以条件key获得JSONObject数组中每个对象的value作为JSON对象的key,然后进行合并。
JSON对象key获得的值,应该是一个JSONObject对象
示例:
JSONArray array = [ { "id": 1, "name": "name" } ] JSONObject json = { 1: { "sex": "男", "age": 18 } } String key = "id"; JSONArray mergeResult = merge(array, json, key); System.out.println(mergeResult);结果: [{"id": 1, "name": "name", "sex": "男", "age": 18}]- 参数:
array- JSONObject数组json- JSON对象key- 条件- 返回:
- 合并后的JSONArray
-
merge
public static void merge(List<com.alibaba.fastjson.JSONObject> list1, List<com.alibaba.fastjson.JSONObject> list2, String key1, String key2)
List合并将 list2 合并到 list1 里面
- 参数:
list1- 需要合并的列表list2- 被合并的列表key1- list1中JSON所使用的keykey2- list2中JSON所使用的key
-
sort
public static List<com.alibaba.fastjson.JSONObject> sort(List<com.alibaba.fastjson.JSONObject> list, String sortKey, SortEnum sortEnum)
List-JSONObject集合排序- 参数:
list- 需要处理的集合sortKey- 排序依据(JSONObject的key)sortEnum- 排序方式- 返回:
- 处理后的List集合
-
sortT
public static <T> List<T> sortT(List<T> list, String sortField, SortEnum sortEnum)
List-T集合排序- 类型参数:
T- 泛型- 参数:
list- 需要处理的集合sortField- 排序字段sortEnum- 排序方式- 返回:
- 处理后的List集合
-
reverse
public static <T> List<T> reverse(List<T> list, Class<T> clazz)
反转集合- 类型参数:
T- 泛型- 参数:
list- 需要处理的集合clazz- 集合元素类型- 返回:
- 反转后的List集合
-
distinct
public static <T> List<T> distinct(List<T> list)
HashSet去重- 类型参数:
T- 泛型- 参数:
list- 需要去重的list- 返回:
- 去重后的list
-
distinct
public static List<com.alibaba.fastjson.JSONObject> distinct(List<com.alibaba.fastjson.JSONObject> list, String distinctKey)
List - JSONObject value去重根据参数distinctKey去重。
- 参数:
list- 需要处理的集合distinctKey- 去重的依据(JSON的key)- 返回:
- 处理后的List集合
-
distinctCount
public static List<com.alibaba.fastjson.JSONObject> distinctCount(List<com.alibaba.fastjson.JSONObject> list, String distinctKey, SortEnum sortEnum)
List-JSONObject集合去重统计与排序根据参数distinctKey(JSONObject的key)计算元素重复次数,并为每个JSONObject添加一个 frequency(频率元素),value的值是从整数1开始计数。
示例:
json.put("frequency", frequency)根据frequency(重复频率)排序
- 参数:
list- 需要处理的集合distinctKey- 去重的依据(JSONObject的key)sortEnum- 排序方式- 返回:
- 处理后的List集合
-
distinctCountSortSelectKeep
public static List<com.alibaba.fastjson.JSONObject> distinctCountSortSelectKeep(List<com.alibaba.fastjson.JSONObject> list, String distinctKey, SortEnum sortEnum, String keepKey, MaxOrMinEnum maxOrMinEnum)
List-JSONObject集合——去重、统计、排序与元素选择性保留根据参数distinctKey(JSONObject的key),计算元素重复次数。并为每个JSONObject添加一个frequency(频率元素),value的值是从整数1开始计数。
示例:
json.put("frequency", frequency)根据frequency(重复频率)排序
- 参数:
list- 需要处理的集合distinctKey- 去重的依据(JSONObject的key)sortEnum- 排序方式keepKey- 需要保留的重复元素(此参数必须为可判断的Number类型:根据maxOrMinEnum选择保留最大值 或 最小值)如:根据id去重,保留age为最大或最小的JSONObjectmaxOrMinEnum- 保留的值:最大值 或 最小值- 返回:
- 处理后的List集合
-
toList
public static <T> ArrayList<T> toList(T[] array)
数组转List此方法为 Arrays.asList(Object...) 的安全实现
- 类型参数:
T- 数组中的对象类- 参数:
array- 将被转换的数组- 返回:
- 被转换数组的列表视图
-
toList
public static <T> List<T> toList(com.alibaba.fastjson.JSONArray jsonArray, Class<T> clazz)
- 类型参数:
T- 泛型- 参数:
jsonArray- 需要转换的JSONArrayclazz- json转换的POJO类型- 返回:
- 转换后的List
-
toList
public static <T> List<T> toList(List<com.alibaba.fastjson.JSONObject> list, Class<T> clazz)
- 类型参数:
T- 泛型- 参数:
list- 需要转换的Listclazz- json转换的POJO类型- 返回:
- 转换后的List
-
toList
public static List<String> toList(List<com.alibaba.fastjson.JSONObject> list, String keepKey)
- 参数:
list- 需要转换的ListkeepKey- 保留值的key- 返回:
- 转换后的List
-
toList
public static <T> List<T> toList(List<com.alibaba.fastjson.JSONObject> list, String keepKey, Class<T> clazz)
- 类型参数:
T- 泛型- 参数:
list- 需要转换的ListkeepKey- 保留值的keyclazz- 类型- 返回:
- 转换后的List
-
toListAndDistinct
public static List<String> toListAndDistinct(List<com.alibaba.fastjson.JSONObject> list, String keepKey)
- 参数:
list- 需要转换的ListkeepKey- 保留值的key- 返回:
- 处理后的List
-
toListAndDistinct
public static <T> List<T> toListAndDistinct(List<com.alibaba.fastjson.JSONObject> list, String keepKey, Class<T> clazz)
- 类型参数:
T- 泛型- 参数:
list- 需要转换的ListkeepKey- 保留值的keyclazz- 类型- 返回:
- 处理后的List
-
toJsonList
public static List<com.alibaba.fastjson.JSONObject> toJsonList(List<Map<String,Object>> list)
- 参数:
list- 需要转换的List- 返回:
- 转换后的List
-
toJsonList
public static List<com.alibaba.fastjson.JSONObject> toJsonList(com.alibaba.fastjson.JSONArray jsonArray)
JSONArray 转 List - JSONObject性能测试报告:
无类型转换(类型推断):见 toJsonList(List)
安全模式强制类型转换:暂未测试
- 参数:
jsonArray- 需要转换的JSONArray- 返回:
- 转换后的jsonList
-
toJsonListT
public static <T> List<com.alibaba.fastjson.JSONObject> toJsonListT(List<T> list)
- 类型参数:
T- 泛型- 参数:
list- 需要转换的List- 返回:
- 转换后的jsonList
-
toJsons
public static com.alibaba.fastjson.JSONObject[] toJsons(com.alibaba.fastjson.JSONArray jsonArray)
JSONArray 转 JSONObject[]对象引用转换,内存指针依旧指向元数据
- 参数:
jsonArray- 需要转换的JSONArray- 返回:
- 转换后的jsons
-
toJsons
public static com.alibaba.fastjson.JSONObject[] toJsons(List<com.alibaba.fastjson.JSONObject> list)
List-JSONObject 转 JSONObject[]对象引用转换,内存指针依旧指向元数据
- 参数:
list- 需要转换的List- 返回:
- 转换后的jsons
-
toJsonsT
public static <T> com.alibaba.fastjson.JSONObject[] toJsonsT(List<T> list)
- 类型参数:
T- 泛型- 参数:
list- 需要转换的List- 返回:
- 转换后的jsons
-
toJsonsTAndRemoveEmpty
public static <T> com.alibaba.fastjson.JSONObject[] toJsonsTAndRemoveEmpty(List<T> list)
- 类型参数:
T- 泛型- 参数:
list- 需要转换的List- 返回:
- 转换后的jsons
-
toJsons
public static com.alibaba.fastjson.JSONObject[] toJsons(String jsonString)
String 转 JSONObject[]- 参数:
jsonString- 需要转换的JSON字符串- 返回:
- JSON数组
-
toJsons
public static com.alibaba.fastjson.JSONObject[] toJsons(String text, String regex, String key)
String 转 JSONObject[]示例:
结果: [{"id":"1"}, {"id":"3"}, {"id":"5"}, {"id":"9"}]String text = "1,3,5,9"; JSONObject[] jsons = toJsons(text, ",", "id"); System.out.println(Arrays.toString(jsons));- 参数:
text- 需要转换的文本regex- 文本分割表达式,同String类的split()方法key- JSON的key名称- 返回:
- 转换后的jsons
-
toSnakeCaseJsonList
public static List<com.alibaba.fastjson.JSONObject> toSnakeCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)
JsonList属性命名策略转换-下划线命名法
- 参数:
list- 需要转换的jsonList- 返回:
- 转换后的jsonList
-
toSnakeCaseJsonListT
public static <T> List<com.alibaba.fastjson.JSONObject> toSnakeCaseJsonListT(List<T> list)
JsonList属性命名策略转换-下划线命名法
- 类型参数:
T- 泛型- 参数:
list- 需要转换的List- 返回:
- 转换后的jsonList
-
toUnderlineCaseJsonList
public static List<com.alibaba.fastjson.JSONObject> toUnderlineCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)
JsonList属性命名策略转换-下划线命名法
- 参数:
list- 需要转换的jsonList- 返回:
- 转换后的jsonList
-
toUnderlineCaseJsonListT
public static <T> List<com.alibaba.fastjson.JSONObject> toUnderlineCaseJsonListT(List<T> list)
JsonList属性命名策略转换-下划线命名法
- 类型参数:
T- 泛型- 参数:
list- 需要转换的List- 返回:
- 转换后的jsonList
-
toCamelCaseJsonList
public static List<com.alibaba.fastjson.JSONObject> toCamelCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)
JsonList属性命名策略转换-驼峰命名法
- 参数:
list- 需要转换的jsonList- 返回:
- 转换后的jsonList
-
-