【发布时间】:2018-12-14 06:18:18
【问题描述】:
给定一个对象列表
// ["A", ["B", null, "C"], "D", ["E"], [], null, "F"];
List<Object> objects = Arrays.asList("A", Arrays.asList("B", null, "C"), "D", Arrays.asList("E"), Arrays.asList(), null, "F");
有没有一种简单的方法可以将非空值组合成一个列表["A", "B", "C", "D", "E", "F"]?
你们中的一些人坚持帖子必须显示尝试过的内容
objects.stream().map(o -> {
if (o instanceof List) {
return ((List) o).stream();
} else return objects.stream();
}).filter(Objects::nonNull).collect(Collectors.toList()));
显然上述方法不起作用。
【问题讨论】:
-
请问您是如何得到这个锯齿状列表数据结构的?几乎感觉它可能来自 JSON。
-
@TimBiegeleisen 它来自对象地图,然后被展平为对象列表,但是您想知道地图的来源?如果有帮助,是的 JSON?
-
List<Object>!!你应该检查所有可能的类型。其余的人呢? JSON 仍然以不同的方式处理数字,对吧?
标签: java list arraylist java-8 java-stream