public class ListUtils
extends cn.hutool.core.collection.ListUtil
Constructor and Description |
---|
ListUtils() |
Modifier and Type | Method and Description |
---|---|
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> T |
get(List<?> list,
Class<T> clazz)
获得List数组中对应类型的第一个值
|
static List<List<com.alibaba.fastjson.JSONObject>> |
grouping(List<com.alibaba.fastjson.JSONObject> list,
String key)
数据分组
|
static boolean |
isEmpty(List<?> list)
List数组是否为空
|
static boolean |
isNotEmpty(List<?> list)
List数组是否不为空
|
static List<String> |
keepSameValue(List<String> list,
List<String> list2)
保留相同值
|
static com.alibaba.fastjson.JSONArray |
merge(com.alibaba.fastjson.JSONArray array,
com.alibaba.fastjson.JSONObject json,
String key)
将JSON集合,合并到数组的JSON集合
|
static void |
merge(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 - JSONObject
|
static 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(List<com.alibaba.fastjson.JSONObject> list)
List-JSONObject 转 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 <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)
数组转List
|
static 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属性命名策略转换-下划线命名法
|
empty, filter, indexOfAll, list, list, list, list, list, list, of, page, reverse, reverseNew, setOrAppend, sort, sortByPinyin, sortByProperty, split, sub, sub, toCopyOnWriteArrayList, toLinkedList, toList, toList, toList, toList, unmodifiable
public static boolean isEmpty(List<?> list)
list
- listpublic static boolean isNotEmpty(List<?> list)
list
- listpublic static <T> T get(List<?> list, Class<T> clazz)
T
- 想要的类型list
- List数组clazz
- 想要的类型Classpublic static List<List<com.alibaba.fastjson.JSONObject>> grouping(List<com.alibaba.fastjson.JSONObject> list, String key)
将拥有相同的 key 值的JSON数据归为一组
list
- 要处理的集合key
- 分组依据public static List<String> keepSameValue(List<String> list, List<String> list2)
list
- 循环第一层list2
- 循环第二层public static com.alibaba.fastjson.JSONArray merge(com.alibaba.fastjson.JSONArray array, com.alibaba.fastjson.JSONObject json, String key)
以条件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
- 条件public static void merge(List<com.alibaba.fastjson.JSONObject> list1, List<com.alibaba.fastjson.JSONObject> list2, String key1, String key2)
将 list2 合并到 list1 里面
list1
- 需要合并的列表list2
- 被合并的列表key1
- list1中JSON所使用的keykey2
- list2中JSON所使用的keypublic static List<com.alibaba.fastjson.JSONObject> sort(List<com.alibaba.fastjson.JSONObject> list, String sortKey, SortEnum sortEnum)
list
- 需要处理的集合sortKey
- 排序依据(JSONObject的key)sortEnum
- 排序方式public static <T> List<T> sortT(List<T> list, String sortField, SortEnum sortEnum)
T
- 泛型list
- 需要处理的集合sortField
- 排序字段sortEnum
- 排序方式public static <T> List<T> reverse(List<T> list, Class<T> clazz)
T
- 泛型list
- 需要处理的集合clazz
- 集合元素类型public static <T> List<T> distinct(List<T> list)
T
- 泛型list
- 需要去重的listpublic static List<com.alibaba.fastjson.JSONObject> distinct(List<com.alibaba.fastjson.JSONObject> list, String distinctKey)
根据参数distinctKey去重。
list
- 需要处理的集合distinctKey
- 去重的依据(JSON的key)public static List<com.alibaba.fastjson.JSONObject> distinctCount(List<com.alibaba.fastjson.JSONObject> list, String distinctKey, SortEnum sortEnum)
根据参数distinctKey(JSONObject的key)计算元素重复次数,并为每个JSONObject添加一个 frequency(频率元素),value的值是从整数1开始计数。
示例:json.put("frequency", frequency)
根据frequency(重复频率)排序
list
- 需要处理的集合distinctKey
- 去重的依据(JSONObject的key)sortEnum
- 排序方式public static List<com.alibaba.fastjson.JSONObject> distinctCountSortSelectKeep(List<com.alibaba.fastjson.JSONObject> list, String distinctKey, SortEnum sortEnum, String keepKey, MaxOrMinEnum maxOrMinEnum)
根据参数distinctKey(JSONObject的key),计算元素重复次数。并为每个JSONObject添加一个frequency(频率元素),value的值是从整数1开始计数。
示例:json.put("frequency", frequency)
根据frequency(重复频率)排序
list
- 需要处理的集合distinctKey
- 去重的依据(JSONObject的key)sortEnum
- 排序方式keepKey
- 需要保留的重复元素(此参数必须为可判断的Number类型:根据maxOrMinEnum选择保留最大值 或 最小值)如:根据id去重,保留age为最大或最小的JSONObjectmaxOrMinEnum
- 保留的值:最大值 或 最小值public static <T> ArrayList<T> toList(T[] array)
此方法为 Arrays.asList(Object...) 的安全实现
T
- 数组中的对象类array
- 将被转换的数组public static <T> List<T> toList(com.alibaba.fastjson.JSONArray jsonArray, Class<T> clazz)
T
- 泛型jsonArray
- 需要转换的JSONArrayclazz
- json转换的POJO类型public static <T> List<T> toList(List<com.alibaba.fastjson.JSONObject> list, Class<T> clazz)
T
- 泛型list
- 需要转换的Listclazz
- json转换的POJO类型public static List<String> toList(List<com.alibaba.fastjson.JSONObject> list, String keepKey)
list
- 需要转换的ListkeepKey
- 保留值的keypublic static <T> List<T> toList(List<com.alibaba.fastjson.JSONObject> list, String keepKey, Class<T> clazz)
T
- 泛型list
- 需要转换的ListkeepKey
- 保留值的keyclazz
- 类型public static List<String> toListAndDistinct(List<com.alibaba.fastjson.JSONObject> list, String keepKey)
list
- 需要转换的ListkeepKey
- 保留值的keypublic static <T> List<T> toListAndDistinct(List<com.alibaba.fastjson.JSONObject> list, String keepKey, Class<T> clazz)
T
- 泛型list
- 需要转换的ListkeepKey
- 保留值的keyclazz
- 类型public static List<com.alibaba.fastjson.JSONObject> toJsonList(List<Map<String,Object>> list)
list
- 需要转换的Listpublic static List<com.alibaba.fastjson.JSONObject> toJsonList(com.alibaba.fastjson.JSONArray jsonArray)
性能测试报告:
无类型转换(类型推断):见 toJsonList(List)
安全模式强制类型转换:暂未测试
jsonArray
- 需要转换的JSONArraypublic static <T> List<com.alibaba.fastjson.JSONObject> toJsonListT(List<T> list)
T
- 泛型list
- 需要转换的Listpublic static com.alibaba.fastjson.JSONObject[] toJsons(com.alibaba.fastjson.JSONArray jsonArray)
对象引用转换,内存指针依旧指向元数据
jsonArray
- 需要转换的JSONArraypublic static com.alibaba.fastjson.JSONObject[] toJsons(List<com.alibaba.fastjson.JSONObject> list)
对象引用转换,内存指针依旧指向元数据
list
- 需要转换的Listpublic static <T> com.alibaba.fastjson.JSONObject[] toJsonsT(List<T> list)
T
- 泛型list
- 需要转换的Listpublic static <T> com.alibaba.fastjson.JSONObject[] toJsonsTAndRemoveEmpty(List<T> list)
T
- 泛型list
- 需要转换的Listpublic static com.alibaba.fastjson.JSONObject[] toJsons(String jsonString)
jsonString
- 需要转换的JSON字符串public static com.alibaba.fastjson.JSONObject[] toJsons(String text, String regex, String key)
示例:结果: [{"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名称public static List<com.alibaba.fastjson.JSONObject> toSnakeCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)
list
- 需要转换的jsonListpublic static <T> List<com.alibaba.fastjson.JSONObject> toSnakeCaseJsonListT(List<T> list)
T
- 泛型list
- 需要转换的Listpublic static List<com.alibaba.fastjson.JSONObject> toUnderlineCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)
list
- 需要转换的jsonListpublic static <T> List<com.alibaba.fastjson.JSONObject> toUnderlineCaseJsonListT(List<T> list)
T
- 泛型list
- 需要转换的Listpublic static List<com.alibaba.fastjson.JSONObject> toCamelCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)
list
- 需要转换的jsonListCopyright © 2022 Pivotal Software, Inc.. All rights reserved.