Lambda表达式

mac2026-08-16  3

Lambda表达式简单使用 ==>持续更新 1.

/** 有两个LIst<Bean>, 比如Bean1中包含prjId,prjManagerName,prjStatus,Bean2中包含prjId,prjManagerName,prjStatus 求LIst1<Bean1>中prjId和List2<Bean2>中prjId相同的,并把Bean2中的prjManagerName,prjStatus赋给Bean1 */ LIst1<Bean1> bean1List=new ArrayList<Bean1>(); LIst1<Bean2> bean2List=new ArrayList<Bean2>(); Map<String, List<Bean2>> stringListMap = bean2List.stream().collect(Collectors.groupingBy(bean2List::getPrjId));//把prjId分组 bean1List.stream().forEach(e -> { //加你想加的判断 Bean2 item = stringListMap.get(e.getPrjId()).get(0); e.setBean2(item); }); List<Map.Entry<Integer,Double>> 进行倒序排序 //性价比数组 Map<Integer,Double> price = new HashMap<>(); //将map的entryset放入list集合 List<Map.Entry<Integer,Double>> list = new ArrayList<>(price.entrySet()); //根据性价比排序并取出倒序序后下标 list.sort(Comparator.comparing(Map.Entry<Integer,Double>::getValue).reversed()); 取出两个list的交集 public static void main(String[] args) { List<Map<String, Object>> list1 = new ArrayList<>(); Map<String, Object> item1 = new HashMap<>(); item1.put("name", "张三"); Map<String, Object> item2 = new HashMap<>(); item2.put("name", "李四"); Map<String, Object> item3 = new HashMap<>(); item3.put("name", "王五"); list1.add(item1); list1.add(item2); list1.add(item3); List<Map<String, Object>> list2 = new ArrayList<>(); Map<String, Object> item4 = new HashMap<>(); item4.put("name", "王五"); list2.add(item4); //把名字取出当key Map<String, List<Map<String, Object>>> nameMap = list2.stream().collect(Collectors.groupingBy(e -> e.get("name").toString())); List<Map<String, Object>> list3 = new ArrayList<>(); list1.stream().forEach(e -> { if(!nameMap.containsKey(e.get("name").toString())){ return; } list3.add(e); }); System.out.println(list3.toString()); }
最新回复(0)