使用java8的新特性完成数剧行转列
例如:
数据库表
id | name | value |
---|---|---|
1 | ' zhangsan' | ‘Isn’t this fun?’ |
1 | "age" | “Isn’t this fun?” |
1 | phone | – is en-dash, — is em-dash |
2 | ' liguang' | ‘Isn’t this fun?’ |
2 | "age" | “Isn’t this fun?” |
2 | phone | – is en-dash, — is em-dash |
使用java行转列
// 存储临时的数据对象
Map<String, Map<String, Object>> temp = new HashMap<>(User.size());
// 使用 Java 8 的 Stream API 来遍历
Users.forEach(primaryDatum -> {
String id = user.getId();
String field = primaryDatum.getName();
String rate = primaryDatum.getValue();
// 使用 putIfAbsent() 方法来存储临时数据对象
temp.putIfAbsent(id, new HashMap<>());
Map<String, Object> valueMap = temp.get(id);
valueMap.put("id", taskCode);
valueMap.put(field, rate);
});
// 将临时数据对象转换为最终的数据对象
return new ArrayList<>(temp.values());