通过Stream流处理,将数组中的每一项重新处理后生成新的数组。
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
// 获取对应的平方数
List<Integer> squaresList = numbers.stream().map( i -> i*i).distinct().collect(Collectors.toList());
通过Stream流处理,将数组中的每一项重新处理后生成一个新的Map。
Map<String, String> dictMap = dicts.stream().collect(Collectors.toMap(Dict::getDataValue, Dict::getDataKey, (o1, o2) -> o1));
JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下。
Dict::getDataValue 做KEY
Dict::getDataKey 做Value
((o1, o2) -> o1) 冲突解决的办法 如果o1与o2的key值相同,选择o1作为那个key所对应的value值