package cn.shentianlan.studytest.common;
import javafx.util.Pair;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 将List集合转换成Map集合
*/
public class ListToMapTest {
public static void main(String[] args) {
List<Pair<String, Double>> pairArrayList = new ArrayList<>(3);
pairArrayList.add(new Pair<>("version", 6.19));
pairArrayList.add(new Pair<>("version", 10.24));
pairArrayList.add(new Pair<>("version", 13.14));
Map<String, Double> map = pairArrayList.stream().collect(
// 生成的 map 集合中只有一个键值对:{version=13.14}
Collectors.toMap(Pair::getKey, Pair::getValue, (v1, v2) -> v2)
);
//上面代码写详细之后如下所示
Map<String, Double> map1 = pairArrayList.stream().collect(
Collectors.toMap(new Function<Pair<String, Double>, String>() {
@Override
public String apply(Pair<String, Double> stringDoublePair) {
return stringDoublePair.getKey();
}
}, new Function<Pair<String, Double>, Double>() {
@Override
public Double apply(Pair<String, Double> stringDoublePair) {
return stringDoublePair.getValue();
}
}, new BinaryOperator<Double>() {
@Override
public Double apply(Double aDouble, Double aDouble2) {
return aDouble2;
}
})
);
System.out.println(map);
System.out.println(map1);
}
}
对于Collectors.toMap(Pair::getKey, Pair::getValue, (v1, v2) -> v2)的理解
最新推荐文章于 2023-09-26 15:15:10 发布