场景1:
1.1:需求
前端需要返回一个json数组,数组中根据地区分组,各个地区下有各个景点
地区,景点可能有重复,要去重;各个景点使用 、隔开。
1.2:源数据
源数据是一个个对象,如下:
1.3:解决
//根据景区获取位置信息
public JSONArray groupScenicByArea(List<Item.Scenic> list) {
HashMap<String, List<String>> resultMap = list.stream().collect(
Collectors.groupingBy(
scenic -> scenic.getScenicCity(),
HashMap::new,
Collectors.mapping(
(scenic -> scenic.getScenicName().trim()),
toList()
)
)
);
JSONArray scenicArray = new JSONArray();
resultMap.forEach((key, value) -> {
String val = value.stream().distinct().collect(Collectors.joining("、"));
JSONObject scenicObject = new JSONObject();
scenicObject.put(key,val);
scenicArray.add(scenicObject);
});
return scenicArray;
}
1.4:结果展示