Java8利用Lambda快速生成map、多层嵌套map

将一个List集合类型的javabean转为Map

Bean为List对象的元素,List < Bean >
此处List对象的变量为:beanList

Map<String, Bean> idMap =
	beanList.stream().collect(
		Collectors.toMap(Bean::getId, b->b)
	);

将一个List的复合javabean转为Map >

MainBean为List对象的元素,List < MainBean >
MainBean主对象,ItemBean子对象,一个MainBean有多个ItemBean;
MainBean的主键为 id,对应 getId() 方法
ItemBean的主键为 id,对应 getId() 方法
此处List对象的变量为:beanList

Map<String, Map<String, MainBean>> collect = 
	beanList.stream().collect(
		Collectors.toMap(
			MainBean::getId, b -> {
				return b.getItemBean().stream().collect(
						Collectors.toMap(ItemBean::getId, c -> c)
				);
            }
        )
    );

你可能感兴趣的:(Java)