マップ値のリニアライズリストに最高の簡潔な方法?

桟橋ルイージ:

私はこのような地図のリストをしました:

List<Map<String,Object>> l = new ArrayList<>();
Map<String,Integer> m = new HashMap<>();
m.put("X", 1);
m.put("Y", 9);
l.add(m);
m = new HashMap<>();
m.put("X", 23);
m.put("Y", 6);
l.add(m);

このようなリストを取得するためにラムダプリミティブと、すべてのマップ値を線形化するための最良の方法は何ですか

List<Integer> = [1, 9, 23, 6]

xingbin:

試してみてください。

List<Integer> result = l
        .stream()
        .flatMap(map -> map.values().stream())
        .collect(Collectors.toList());

System.out.println(result); // [1, 9, 23, 6]

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=203275&siteId=1
おすすめ