_.dismantling
public static <T, K, V> Map<K, V> dismantling(List<T> dataSources, Function<? super T, ? extends K> keyApply,
public static <K, T, V> Map<K, V> dismantlingFirst(List<T> dataSource,Function<? super T, ? extends K> keyApply,Function<? super T, ? extends V> valueApply)
参数
- dataSources
(List<T>)
待参加计算的数据信息。 - keyApply 拆分的key
- valueApply 拆分的value
warning
注意数据拆分必须是一对一的关系,否则会出现key重复异常。 如过要兼容这种场景,当出现key重复只取第一个,忽略剩下的。
返回值
Map<K, V>
将数据拆分成一一对应的关系
例子
List<Person> persons = Arrays.asList(
new Person(12, "孙悟空"),
new Person(12, "猪八戒"),
new Person(12, "唐三藏")
);
Map<String, Integer> success = EnhanceStream.dismantling(persons, Person::getName, Person::getAge);
Console.log(success);
//=>{孙悟空=12, 猪八戒=12, 唐三藏=12}
List<Person> errorPerson = Arrays.asList(
new Person(12, "孙悟空"),
new Person(12, "猪八戒"),
new Person(12, "孙悟空")
);
//java.util.DuplicateFormatFlagsException: name中存在相同的元素则报错
Map<String, Integer> error = EnhanceStream.dismantling(errorPerson, Person::getName, Person::getAge);
Console.log(error);
//java.util.DuplicateFormatFlagsException: Flags = '数据重复,请检查绑定key=孙悟空
Map<String, Integer> integerMap = EnhanceStream.dismantlingFirst(errorPerson, Person::getName, Person::getAge);
Console.log(integerMap);
//=>{孙悟空=12, 猪八戒=12} 忽略重复的key