我有一个List<Polygon> polygons
,其中 Polygon 代表多边形的 geojson 概念。在Polygon类中我定义了一个方法toGeojson()
返回包含 geojson 表示的字符串。我想以紧凑的方式打印所有列表,而不是这样做:
String result = '';
for(Polygon p: polygons)
result += p.toGeojson();
我可以做result = p.toString()
但我不能使用 toString()
方法,因为我用它来做其他事情。有办法调用 toGeojson()
在列表上,就像使用 toString()
一样?
最佳答案
不确定这是否能回答您的问题,但您可以使用 Stream
api 来实现这一点。
String result = polygons.stream()
.map(Polygon::toGeojson)
.collect(Collectors.joining(","));
没有直接的方法来覆盖List.toString()
的行为。
已更新
有Collectors#joining(CharSequence delimiter, CharSequence prefix, CharSequence suffix)接受后缀和前缀的方法。使用此方法,我们可以使输出看起来与带有方括号的 List.toSting
完全相同。
String result = polygons.stream()
.map(Polygon::toGeojson)
.collect(Collectors.joining(",", "[", "]")); // ["x","y"]
关于Java列表可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43888704/