List 和 Map、JSONArray、Array 相互转换
目录
一 User类模型
import lombok.Data; import java.util.Date; @Data public class User { private Long id; private String name; private Integer age; private Date createDatetime; private Date updateDatetime; }
二 List转Map
/** * List转Map */ public static Map<Long, User> listToMap(List<User> userList) { if(CollectionUtils.isEmpty(userList)) { return new HashMap<>(); } return userList.stream() .collect(Collectors.toMap(User::getId, user->user, (k1, k2) -> k2)); }
三 Map转List
/** * Map转List */ public static List<User> mapToList(Map<Long, User> map) { if(CollectionUtils.isEmpty(map)) { return new ArrayList<>(); } return map.values().stream().collect(Collectors.toList()); }
四 List转JSONArray
/** * List转JSONArray */ public static JSONArray listToJSONArray(List<User> userList) { if(CollectionUtils.isEmpty(userList)) { return new JSONArray(); } return JSONArray.parseArray(JSON.toJSONString(userList)); }
五 JSONArray转List
/** * JSONArray转List */ public static List<User> jsonArrayToList(JSONArray jsonArray) { if(CollectionUtils.isEmpty(jsonArray)) { return new ArrayList<>(); } return JSONObject.parseArray(jsonArray.toJSONString(), User.class); }
六 JSON String转List
/** * JSON String转List */ public static List<User> stringToList(String string) { if(StringUtils.isEmpty(string)) { return new ArrayList<>(); } return JSONObject.parseArray(string, User.class); }
七 List转Array
7.1 List转包装类
/** * list转array * @param userList * @return */ public static User[] listToArray(List<User> userList) { if(CollectionUtils.isEmpty(userList)) { return new User[0]; } return userList.toArray(new User[0]); }
7.2 List转基本类型
/** * list转array * @param userList * @return */ public static int[] a(List<User> userList) { if(CollectionUtils.isEmpty(userList)) { return new int[0]; } return userList.stream().mapToInt(User::getAge).toArray(); }
八 Array转List
/** * array转list * @param users * @return */ public static List<User> arrayToList(User[] users) { if(users == null || users.length == 0) { return new ArrayList<>(); } return Arrays.asList(users); }