类 ListUtils
- java.lang.Object
-
- ai.yue.library.base.util.ListUtils
-
public class ListUtils extends java.lang.ObjectList工具类- 从以下版本开始:
- 2017年10月27日
- 作者:
- 孙金川
-
-
构造器概要
构造器 构造器 说明 ListUtils()
-
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static java.util.List<com.alibaba.fastjson.JSONObject>distinct(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String distinctKey)List - JSONObject value去重static <T> java.util.List<T>distinct(java.util.List<T> list)HashSet去重static java.util.List<com.alibaba.fastjson.JSONObject>distinctCount(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String distinctKey, SortEnum sortEnum)List-JSONObject集合去重统计与排序static java.util.List<com.alibaba.fastjson.JSONObject>distinctCountSortSelectKeep(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String distinctKey, SortEnum sortEnum, java.lang.String keepKey, MaxOrMinEnum maxOrMinEnum)List-JSONObject集合——去重、统计、排序与元素选择性保留static java.util.List<java.util.List<com.alibaba.fastjson.JSONObject>>grouping(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String key)数据分组static booleanisEmpty(java.util.List<?> list)List数组是否为空static booleanisNotEmpty(java.util.List<?> list)List数组是否不为空static java.util.List<java.lang.String>keepSameValue(java.util.List<java.lang.String> list, java.util.List<java.lang.String> list2)保留相同值static com.alibaba.fastjson.JSONArraymerge(com.alibaba.fastjson.JSONArray array, com.alibaba.fastjson.JSONObject json, java.lang.String key)将JSON集合,合并到数组的JSON集合static voidmerge(java.util.List<com.alibaba.fastjson.JSONObject> list1, java.util.List<com.alibaba.fastjson.JSONObject> list2, java.lang.String key1, java.lang.String key2)List合并static <T> java.util.List<T>reverse(java.util.List<T> list, java.lang.Class<T> clazz)反转集合static java.util.List<com.alibaba.fastjson.JSONObject>sort(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String sortKey, SortEnum sortEnum)List-JSONObject集合排序static <T> java.util.List<T>sortT(java.util.List<T> list, java.lang.String sortField, SortEnum sortEnum)List-T集合排序static java.util.List<com.alibaba.fastjson.JSONObject>toJsonList(com.alibaba.fastjson.JSONArray jsonArray)JSONArray 转 List - JSONObjectstatic java.util.List<com.alibaba.fastjson.JSONObject>toJsonList(java.util.List<java.util.Map<java.lang.String,java.lang.Object>> list)List - Map 转 List - JSONObjectstatic <T> java.util.List<com.alibaba.fastjson.JSONObject>toJsonListT(java.util.List<T> list)List - Class 转 List - JSONObjectstatic com.alibaba.fastjson.JSONObject[]toJsons(com.alibaba.fastjson.JSONArray jsonArray)JSONArray 转 JSONObject[]static com.alibaba.fastjson.JSONObject[]toJsons(java.lang.String jsonString)String 转 JSONObject[]static com.alibaba.fastjson.JSONObject[]toJsons(java.lang.String text, java.lang.String regex, java.lang.String key)String 转 JSONObject[] 示例:static com.alibaba.fastjson.JSONObject[]toJsons(java.util.List<com.alibaba.fastjson.JSONObject> list)List-JSONObject 转 JSONObject[]static <T> com.alibaba.fastjson.JSONObject[]toJsonsT(java.util.List<T> list)List - Class 转 JSONObject[]static <T> com.alibaba.fastjson.JSONObject[]toJsonsTAndRemoveEmpty(java.util.List<T> list)List - Class 转 JSONObject[] 并移除空对象static <T> java.util.List<T>toList(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.Class<T> clazz)List-JSONObject 转 List-Classstatic java.util.List<java.lang.String>toList(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String keepKey)List-JSONObject 转 List-Stringstatic <T> java.util.List<T>toList(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String keepKey, java.lang.Class<T> clazz)List-JSONObject 转 List-Classstatic <T> java.util.ArrayList<T>toList(T[] array)数组转Liststatic java.util.List<java.lang.String>toListAndDistinct(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String keepKey)List - JSONObject 转 List - String 并去除重复元素static <T> java.util.List<T>toListAndDistinct(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String keepKey, java.lang.Class<T> clazz)List-JSONObject 转 List-Class 并去除重复元素
-
-
-
方法详细资料
-
isEmpty
public static boolean isEmpty(java.util.List<?> list)
List数组是否为空- 参数:
list- list- 返回:
- 是否为空
-
isNotEmpty
public static boolean isNotEmpty(java.util.List<?> list)
List数组是否不为空- 参数:
list- list- 返回:
- 是否不为空
-
grouping
public static java.util.List<java.util.List<com.alibaba.fastjson.JSONObject>> grouping(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String key)数据分组将拥有相同的 key 值的JSON数据归为一组
- 参数:
list- 要处理的集合key- 分组依据- 返回:
- 分组后的list
-
keepSameValue
public static java.util.List<java.lang.String> keepSameValue(java.util.List<java.lang.String> list, java.util.List<java.lang.String> list2)保留相同值- 参数:
list- 循环第一层list2- 循环第二层- 返回:
- 处理后的list
-
merge
public static com.alibaba.fastjson.JSONArray merge(com.alibaba.fastjson.JSONArray array, com.alibaba.fastjson.JSONObject json, java.lang.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(java.util.List<com.alibaba.fastjson.JSONObject> list1, java.util.List<com.alibaba.fastjson.JSONObject> list2, java.lang.String key1, java.lang.String key2)List合并将 list2 合并到 list1 里面
- 参数:
list1- 需要合并的列表list2- 被合并的列表key1- list1中JSON所使用的keykey2- list2中JSON所使用的key
-
sort
public static java.util.List<com.alibaba.fastjson.JSONObject> sort(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String sortKey, SortEnum sortEnum)List-JSONObject集合排序- 参数:
list- 需要处理的集合sortKey- 排序依据(JSONObject的key)sortEnum- 排序方式- 返回:
- 处理后的List集合
-
sortT
public static <T> java.util.List<T> sortT(java.util.List<T> list, java.lang.String sortField, SortEnum sortEnum)List-T集合排序- 类型参数:
T- 泛型- 参数:
list- 需要处理的集合sortField- 排序字段sortEnum- 排序方式- 返回:
- 处理后的List集合
-
reverse
public static <T> java.util.List<T> reverse(java.util.List<T> list, java.lang.Class<T> clazz)反转集合- 类型参数:
T- 泛型- 参数:
list- 需要处理的集合clazz- 集合元素类型- 返回:
- 反转后的List集合
-
distinct
public static <T> java.util.List<T> distinct(java.util.List<T> list)
HashSet去重- 类型参数:
T- 泛型- 参数:
list- 需要去重的list- 返回:
- 去重后的list
-
distinct
public static java.util.List<com.alibaba.fastjson.JSONObject> distinct(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String distinctKey)List - JSONObject value去重根据参数distinctKey去重。
- 参数:
list- 需要处理的集合distinctKey- 去重的依据(JSON的key)- 返回:
- 处理后的List集合
-
distinctCount
public static java.util.List<com.alibaba.fastjson.JSONObject> distinctCount(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.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 java.util.List<com.alibaba.fastjson.JSONObject> distinctCountSortSelectKeep(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String distinctKey, SortEnum sortEnum, java.lang.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> java.util.ArrayList<T> toList(T[] array)
数组转List此方法为 Arrays.asList(Object...) 的安全实现
- 类型参数:
T- 数组中的对象类- 参数:
array- 将被转换的数组- 返回:
- 被转换数组的列表视图
-
toList
public static <T> java.util.List<T> toList(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.Class<T> clazz)List-JSONObject 转 List-Class- 类型参数:
T- 泛型- 参数:
list- 需要转换的Listclazz- json转换的POJO类型- 返回:
- 转换后的List
-
toList
public static java.util.List<java.lang.String> toList(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String keepKey)List-JSONObject 转 List-String- 参数:
list- 需要转换的ListkeepKey- 保留值的key- 返回:
- 转换后的List
-
toList
public static <T> java.util.List<T> toList(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String keepKey, java.lang.Class<T> clazz)List-JSONObject 转 List-Class- 类型参数:
T- 泛型- 参数:
list- 需要转换的ListkeepKey- 保留值的keyclazz- 类型- 返回:
- 转换后的List
-
toListAndDistinct
public static java.util.List<java.lang.String> toListAndDistinct(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String keepKey)List - JSONObject 转 List - String 并去除重复元素- 参数:
list- 需要转换的ListkeepKey- 保留值的key- 返回:
- 处理后的List
-
toListAndDistinct
public static <T> java.util.List<T> toListAndDistinct(java.util.List<com.alibaba.fastjson.JSONObject> list, java.lang.String keepKey, java.lang.Class<T> clazz)List-JSONObject 转 List-Class 并去除重复元素- 类型参数:
T- 泛型- 参数:
list- 需要转换的ListkeepKey- 保留值的keyclazz- 类型- 返回:
- 处理后的List
-
toJsonList
public static java.util.List<com.alibaba.fastjson.JSONObject> toJsonList(java.util.List<java.util.Map<java.lang.String,java.lang.Object>> list)
List - Map 转 List - JSONObject性能测试说明:
测试CPU:i7-4710MQ
测试结果:百万级数据平均200ms(毫秒)
- 参数:
list- 需要转换的List- 返回:
- 转换后的List
-
toJsonList
public static java.util.List<com.alibaba.fastjson.JSONObject> toJsonList(com.alibaba.fastjson.JSONArray jsonArray)
JSONArray 转 List - JSONObject性能测试报告:
无类型转换(类型推断):见 toJsonList(List)
安全模式强制类型转换:暂未测试
- 参数:
jsonArray- 需要转换的JSONArray- 返回:
- 转换后的jsonList
-
toJsonListT
public static <T> java.util.List<com.alibaba.fastjson.JSONObject> toJsonListT(java.util.List<T> list)
List - Class 转 List - JSONObject性能测试报告:
安全模式强制类型转换:暂未测试
- 类型参数:
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(java.util.List<com.alibaba.fastjson.JSONObject> list)
List-JSONObject 转 JSONObject[]对象引用转换,内存指针依旧指向元数据
- 参数:
list- 需要转换的List- 返回:
- 转换后的jsons
-
toJsonsT
public static <T> com.alibaba.fastjson.JSONObject[] toJsonsT(java.util.List<T> list)
List - Class 转 JSONObject[]性能测试报告:
安全模式强制类型转换:暂未测试
- 类型参数:
T- 泛型- 参数:
list- 需要转换的List- 返回:
- 转换后的jsons
-
toJsonsTAndRemoveEmpty
public static <T> com.alibaba.fastjson.JSONObject[] toJsonsTAndRemoveEmpty(java.util.List<T> list)
List - Class 转 JSONObject[] 并移除空对象性能测试报告:
安全模式强制类型转换:暂未测试
- 类型参数:
T- 泛型- 参数:
list- 需要转换的List- 返回:
- 转换后的jsons
-
toJsons
public static com.alibaba.fastjson.JSONObject[] toJsons(java.lang.String jsonString)
String 转 JSONObject[]- 参数:
jsonString- 需要转换的JSON字符串- 返回:
- JSON数组
-
toJsons
public static com.alibaba.fastjson.JSONObject[] toJsons(java.lang.String text, java.lang.String regex, java.lang.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
-
-