List.stream()常用方法

1 将List转成map

list.stream().collect(Collectors.toMap(xxx)): list.stream():把list转成流,list.stream().collect():把流转回list.
示例:
List<JSONObject> candidates = projectMapper.getCandidateList();
//candidates 是从数据库里查出来结果集,包含,eventId,suppNm,rank三个字段,现在把eventId当key,suppNm,rank转成jsonobject当value.
Map<String, List<JSONObject>> candidatesMap = candidates.stream().collect(Collectors.toMap(w -> w.getString("eventId"), w -> {
                            ArrayList<JSONObject> candidateList = new ArrayList<>();
                            JSONObject jsonObject = new JSONObject();
                            jsonObject.put("suppNm",w.get("suppNm"));
                            jsonObject.put("rank",w.get("rank"));
                            candidateList.add(jsonObject);
                            return candidateList;
                        },
//指定key重复的处理方式
(List<JSONObject> oldValue,List<JSONObject> newValue)->{ oldValue.addAll(newValue); return oldValue; }));

2 对list<T>中的泛型数据做处理

List<JSONObject> list = searchMapper.categorySelect();
//list是查询的结果集,包含firstCode,firstName字段
        List<JSONObject> parent_id = list.stream().map(e -> {
将list里的JSONObject类型取出来做处理,仍旧映射成JSONObject类型,也可以取出一个字段映射成string类型
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("code",e.get("firstCode"));
            jsonObject.put("name",e.get("firstName"));
            return jsonObject;
        }).distinct().collect(Collectors.toList());
distinct()是去重,还有filter()过滤,limit()限制条数,sort()排序,forEach()循环处理list每条数据 等方法.
还可以组合使用
list.stream().filter(x1 ->x1过滤条件).map(e -> {})这样符合filter过滤条件的数据才会映射
上一篇:方程组在线性代数中的意义及非齐次线性方程组


下一篇:汇编语言第四次实验