我正在尝试从哈希映射中筛选密钥,并以混合键值格式打印。我有同样的逻辑工作良好的csv格式如下。在下面的代码中,我只从响应对象中选择了一些特性,并以逗号分隔的值返回。
public String mycsvformat(Response response, String[] selectedFeature) {
return Stream.concat(
Stream.of(response.getId()),
Arrays.stream(selectedFeature)
.map(f -> response.getFeature().get(f))
.map(v -> v == null ? "" : v.toString())
)
.collect(Collectors.joining(","));
}
输出:
id1,feature1Value,feature3Value,feature4Value
响应级别-
public class Response {
private String id;
private Map<String, Object> feature;
}
现在我需要打印以下格式的响应:
id1 feature1Key=feature1Value,feature3Key=feature3Value,feature4Key=feature4Value
id后面的制表符分隔,其余全部在键值对中。请提出建议。
下面的代码段会有所帮助。
Arrays.stream(selectedFeature)
.filter(response.getFeature()::containsKey)
.map(f -> String.format("%s=%s", f, response.getFeature()
.get(f)
.toString()))
.collect(Collectors.joining(",", String.format("%st", response.getId()), ""));
假设您只需要在所选功能均不匹配时打印id
值。