stream.collect
Map<Integer, TypeEnum> map = Arrays.stream(TypeEnum.values())
.filter(item -> item.getStatus() != null)
.collect(Collectors.toMap(TypeEnum::getStatus, item -> item, (v1, v2) -> v1));
在例子中
.collect(Collectors.toMap(TypeEnum::getStatus, item -> item, (v1, v2) -> v1));
第一个参数TypeEnum::getStatus 表示选择TypeEnum的getStatus作为map的key值;
第二个参数item -> item表示选择将原来的对象作为map的value值;
第三个参数(v1, v2) -> v1中,如果v1与v2的key值相同,选择v1作为那个key所对应的value值