public class ListUtils extends Object
| 构造器和说明 |
|---|
ListUtils() |
| 限定符和类型 | 方法和说明 |
|---|---|
static List<com.alibaba.fastjson.JSONObject> |
distinct(List<com.alibaba.fastjson.JSONObject> list,
String distinctKey)
List - JSONObject value去重
根据参数distinctKey去重。
|
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集合去重统计与排序
根据参数distinctKey(JSONObject的key)计算元素重复次数,并为每个JSONObject添加一个 frequency(频率元素),value的值是从整数1开始计数。
|
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),计算元素重复次数。
|
static List<List<com.alibaba.fastjson.JSONObject>> |
grouping(List<com.alibaba.fastjson.JSONObject> list,
String key)
数据分组
将拥有相同的 key 值的JSON数据归为一组
|
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集合
以条件key获得JSONObject数组中每个对象的value作为JSON对象的key,然后进行合并。
|
static void |
merge(List<com.alibaba.fastjson.JSONObject> list1,
List<com.alibaba.fastjson.JSONObject> list2,
String key1,
String key2)
List合并
将 list2 合并到 list1 里面
|
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> |
toJsonList(com.alibaba.fastjson.JSONArray jsonArray)
|
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[]
示例:
String text = "1,3,5,9";
JSONObject[] jsons = toJsons(text, ",", "id");
System.out.println(Arrays.toString(jsons));
结果:
[{"id":"1"}, {"id":"3"}, {"id":"5"}, {"id":"9"}]
|
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(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
此方法为 Arrays.asList(Object...)
|
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)
|
public static boolean isEmpty(List<?> list)
list - listpublic static boolean isNotEmpty(List<?> list)
list - listpublic 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(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)
示例:
String text = "1,3,5,9";
JSONObject[] jsons = toJsons(text, ",", "id");
System.out.println(Arrays.toString(jsons));
结果:
[{"id":"1"}, {"id":"3"}, {"id":"5"}, {"id":"9"}]
text - 需要转换的文本regex - 文本分割表达式,同String类的split()方法key - JSON的key名称Copyright © 2019 Pivotal Software, Inc.. All rights reserved.