问题:根据map中的某个字段进行去重
数据如下
[
{
"fNum":"330727FF0192",
"groupTime":"2022-06-29T19:00:00+08:00",
"hour1":39,
"hour3":45.5,
"hour6":45.5,
"hour12":45.5,
"hour24":45.5,
"level":3,
"tag":1
},
{
"fNum":"330727FF0047",
"groupTime":"2022-03-14T20:00:00+08:00",
"hour1":45,
"hour3":45,
"hour6":45,
"hour12":45,
"hour24":45,
"level":2,
"tag":1
},
{
"fNum":"330727FF0047",
"groupTime":"2022-03-14T21:00:00+08:00",
"hour1":26.5,
"hour3":71.5,
"hour6":71.5,
"hour12":71.5,
"hour24":71.5,
"level":3,
"tag":1
},
{
"fNum":"330727FF0047",
"groupTime":"2022-03-14T22:00:00+08:00",
"hour1":8.5,
"hour3":80,
"hour6":80,
"hour12":80,
"hour24":80,
"level":2,
"tag":1
}
]
为"fNum":"330727FF0047"的dto数据进行去重
package com.shucha.deveiface.biz.test;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.sdy.mvc.utils.JsonUtil;
import com.shucha.deveiface.biz.dto.RiskForecastDTO;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
/**
* @author tqf
* @Description
* @Version 1.0
* @since 2022-07-06 16:37
*/
public class RiskForecastTest {
public static void main(String[] args) {
String data = "[{\"fNum\":\"330727FF0192\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":39,\"hour3\":45.5,\"hour6\":45.5,\"hour12\":45.5,\"hour24\":45.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0047\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":45,\"hour3\":45,\"hour6\":45,\"hour12\":45,\"hour24\":45,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0047\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":26.5,\"hour3\":71.5,\"hour6\":71.5,\"hour12\":71.5,\"hour24\":71.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0047\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":8.5,\"hour3\":80,\"hour6\":80,\"hour12\":80,\"hour24\":80,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0047\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":1.5,\"hour3\":36.5,\"hour6\":81.5,\"hour12\":81.5,\"hour24\":81.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0047\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":1,\"hour3\":11,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0047\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0049\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":45,\"hour3\":45,\"hour6\":45,\"hour12\":45,\"hour24\":45,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0049\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":26.5,\"hour3\":71.5,\"hour6\":71.5,\"hour12\":71.5,\"hour24\":71.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0049\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":8.5,\"hour3\":80,\"hour6\":80,\"hour12\":80,\"hour24\":80,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0049\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":1.5,\"hour3\":36.5,\"hour6\":81.5,\"hour12\":81.5,\"hour24\":81.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0049\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":1,\"hour3\":11,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0049\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0057\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":45,\"hour3\":45,\"hour6\":45,\"hour12\":45,\"hour24\":45,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0057\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":26.5,\"hour3\":71.5,\"hour6\":71.5,\"hour12\":71.5,\"hour24\":71.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0057\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":8.5,\"hour3\":80,\"hour6\":80,\"hour12\":80,\"hour24\":80,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0057\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":1.5,\"hour3\":36.5,\"hour6\":81.5,\"hour12\":81.5,\"hour24\":81.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0057\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":1,\"hour3\":11,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0057\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0085\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":40.5,\"hour3\":41,\"hour6\":41,\"hour12\":41,\"hour24\":41,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0085\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":17.9,\"hour3\":58.9,\"hour6\":58.9,\"hour12\":58.9,\"hour24\":58.9,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0085\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":11,\"hour3\":69.4,\"hour6\":69.9,\"hour12\":69.9,\"hour24\":69.9,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0087\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":45,\"hour3\":45,\"hour6\":45,\"hour12\":45,\"hour24\":45,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0087\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":26.5,\"hour3\":71.5,\"hour6\":71.5,\"hour12\":71.5,\"hour24\":71.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0087\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":8.5,\"hour3\":80,\"hour6\":80,\"hour12\":80,\"hour24\":80,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0087\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":1.5,\"hour3\":36.5,\"hour6\":81.5,\"hour12\":81.5,\"hour24\":81.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0087\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":1,\"hour3\":11,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0087\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0089\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":45,\"hour3\":45,\"hour6\":45,\"hour12\":45,\"hour24\":45,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0089\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":26.5,\"hour3\":71.5,\"hour6\":71.5,\"hour12\":71.5,\"hour24\":71.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0089\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":8.5,\"hour3\":80,\"hour6\":80,\"hour12\":80,\"hour24\":80,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0089\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":1.5,\"hour3\":36.5,\"hour6\":81.5,\"hour12\":81.5,\"hour24\":81.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0089\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":1,\"hour3\":11,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0089\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0090\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":45,\"hour3\":45,\"hour6\":45,\"hour12\":45,\"hour24\":45,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0090\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":26.5,\"hour3\":71.5,\"hour6\":71.5,\"hour12\":71.5,\"hour24\":71.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0090\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":8.5,\"hour3\":80,\"hour6\":80,\"hour12\":80,\"hour24\":80,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0090\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":1.5,\"hour3\":36.5,\"hour6\":81.5,\"hour12\":81.5,\"hour24\":81.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0090\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":1,\"hour3\":11,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0090\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0151\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":45,\"hour3\":45,\"hour6\":45,\"hour12\":45,\"hour24\":45,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0151\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":26.5,\"hour3\":71.5,\"hour6\":71.5,\"hour12\":71.5,\"hour24\":71.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0151\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":8.5,\"hour3\":80,\"hour6\":80,\"hour12\":80,\"hour24\":80,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0151\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":1.5,\"hour3\":36.5,\"hour6\":81.5,\"hour12\":81.5,\"hour24\":81.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0151\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":1,\"hour3\":11,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0151\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":82.5,\"hour12\":82.5,\"hour24\":82.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0156\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":40.5,\"hour3\":41,\"hour6\":41,\"hour12\":41,\"hour24\":41,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0156\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":17.9,\"hour3\":58.9,\"hour6\":58.9,\"hour12\":58.9,\"hour24\":58.9,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0156\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":11,\"hour3\":69.4,\"hour6\":69.9,\"hour12\":69.9,\"hour24\":69.9,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0157\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":40.5,\"hour3\":41,\"hour6\":41,\"hour12\":41,\"hour24\":41,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0157\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":17.9,\"hour3\":58.9,\"hour6\":58.9,\"hour12\":58.9,\"hour24\":58.9,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0157\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":11,\"hour3\":69.4,\"hour6\":69.9,\"hour12\":69.9,\"hour24\":69.9,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0170\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":40.5,\"hour3\":41,\"hour6\":41,\"hour12\":41,\"hour24\":41,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0170\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":17.9,\"hour3\":58.9,\"hour6\":58.9,\"hour12\":58.9,\"hour24\":58.9,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0170\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":11,\"hour3\":69.4,\"hour6\":69.9,\"hour12\":69.9,\"hour24\":69.9,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0193\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":52,\"hour3\":55,\"hour6\":55,\"hour12\":55,\"hour24\":55,\"level\":1,\"tag\":1},{\"fNum\":\"330727FF0193\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":26,\"hour3\":81,\"hour6\":81,\"hour12\":81,\"hour24\":81,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0193\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":6.5,\"hour3\":84.5,\"hour6\":87.5,\"hour12\":87.5,\"hour24\":87.5,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0193\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":1,\"hour3\":33.5,\"hour6\":88.5,\"hour12\":88.5,\"hour24\":88.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0193\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":0.5,\"hour3\":8,\"hour6\":89,\"hour12\":89,\"hour24\":89,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0193\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":1.5,\"hour6\":86,\"hour12\":89,\"hour24\":89,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0191\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":40.5,\"hour3\":41,\"hour6\":41,\"hour12\":41,\"hour24\":41,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0191\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":17.9,\"hour3\":58.9,\"hour6\":58.9,\"hour12\":58.9,\"hour24\":58.9,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0191\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":11,\"hour3\":69.4,\"hour6\":69.9,\"hour12\":69.9,\"hour24\":69.9,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0194\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":6.5,\"hour3\":59,\"hour6\":59,\"hour12\":59,\"hour24\":59,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0195\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":6.5,\"hour3\":59,\"hour6\":59,\"hour12\":59,\"hour24\":59,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0042\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":41.5,\"hour3\":41.5,\"hour6\":41.5,\"hour12\":41.5,\"hour24\":41.5,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0042\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":3.5,\"hour3\":58,\"hour6\":58,\"hour12\":58,\"hour24\":58,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0107\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":41.5,\"hour3\":41.5,\"hour6\":41.5,\"hour12\":41.5,\"hour24\":41.5,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0107\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":3.5,\"hour3\":58,\"hour6\":58,\"hour12\":58,\"hour24\":58,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0008\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":32.5,\"hour3\":34,\"hour6\":34,\"hour12\":34,\"hour24\":34,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0008\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":27,\"hour3\":61,\"hour6\":61,\"hour12\":61,\"hour24\":61,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0008\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":12,\"hour3\":71.5,\"hour6\":73,\"hour12\":73,\"hour24\":73,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0009\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":32.5,\"hour3\":34,\"hour6\":34,\"hour12\":34,\"hour24\":34,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0009\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":27,\"hour3\":61,\"hour6\":61,\"hour12\":61,\"hour24\":61,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0009\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":12,\"hour3\":71.5,\"hour6\":73,\"hour12\":73,\"hour24\":73,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0120\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":32.5,\"hour3\":34,\"hour6\":34,\"hour12\":34,\"hour24\":34,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0120\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":27,\"hour3\":61,\"hour6\":61,\"hour12\":61,\"hour24\":61,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0120\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":12,\"hour3\":71.5,\"hour6\":73,\"hour12\":73,\"hour24\":73,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0142\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":32.5,\"hour3\":34,\"hour6\":34,\"hour12\":34,\"hour24\":34,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0142\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":27,\"hour3\":61,\"hour6\":61,\"hour12\":61,\"hour24\":61,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0142\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":12,\"hour3\":71.5,\"hour6\":73,\"hour12\":73,\"hour24\":73,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0144\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":32.5,\"hour3\":34,\"hour6\":34,\"hour12\":34,\"hour24\":34,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0144\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":27,\"hour3\":61,\"hour6\":61,\"hour12\":61,\"hour24\":61,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0144\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":12,\"hour3\":71.5,\"hour6\":73,\"hour12\":73,\"hour24\":73,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0145\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":32.5,\"hour3\":34,\"hour6\":34,\"hour12\":34,\"hour24\":34,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0145\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":27,\"hour3\":61,\"hour6\":61,\"hour12\":61,\"hour24\":61,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0145\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":12,\"hour3\":71.5,\"hour6\":73,\"hour12\":73,\"hour24\":73,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0150\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":45,\"hour3\":45,\"hour6\":45,\"hour12\":45,\"hour24\":45,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0150\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":15,\"hour3\":60,\"hour6\":60,\"hour12\":60,\"hour24\":60,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0150\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":10,\"hour3\":70,\"hour6\":70,\"hour12\":70,\"hour24\":70,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0118\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":31.5,\"hour3\":31.5,\"hour6\":31.5,\"hour12\":31.5,\"hour24\":31.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0166\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":31.5,\"hour3\":31.5,\"hour6\":31.5,\"hour12\":31.5,\"hour24\":31.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0220\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":31.5,\"hour3\":31.5,\"hour6\":31.5,\"hour12\":31.5,\"hour24\":31.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0224\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":31.5,\"hour3\":31.5,\"hour6\":31.5,\"hour12\":31.5,\"hour24\":31.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0225\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":31.5,\"hour3\":31.5,\"hour6\":31.5,\"hour12\":31.5,\"hour24\":31.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0226\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":31.5,\"hour3\":31.5,\"hour6\":31.5,\"hour12\":31.5,\"hour24\":31.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0231\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":31.5,\"hour3\":31.5,\"hour6\":31.5,\"hour12\":31.5,\"hour24\":31.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0233\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":31.5,\"hour3\":31.5,\"hour6\":31.5,\"hour12\":31.5,\"hour24\":31.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0040\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":34.5,\"hour3\":34.5,\"hour6\":34.5,\"hour12\":34.5,\"hour24\":34.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0138\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":40.5,\"hour3\":40.5,\"hour6\":40.5,\"hour12\":40.5,\"hour24\":40.5,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0139\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":40.5,\"hour3\":40.5,\"hour6\":40.5,\"hour12\":40.5,\"hour24\":40.5,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0140\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":34.5,\"hour3\":34.5,\"hour6\":34.5,\"hour12\":34.5,\"hour24\":34.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0060\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":54,\"hour3\":54,\"hour6\":54,\"hour12\":54,\"hour24\":54,\"level\":1,\"tag\":1},{\"fNum\":\"330727FF0060\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":18.5,\"hour3\":72.5,\"hour6\":72.5,\"hour12\":72.5,\"hour24\":72.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0060\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":9.5,\"hour3\":82,\"hour6\":82,\"hour12\":82,\"hour24\":82,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0060\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":2,\"hour3\":30,\"hour6\":84,\"hour12\":84,\"hour24\":84,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0060\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":0.5,\"hour3\":12,\"hour6\":84.5,\"hour12\":84.5,\"hour24\":84.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0060\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":84.5,\"hour12\":84.5,\"hour24\":84.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0115\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":54,\"hour3\":54,\"hour6\":54,\"hour12\":54,\"hour24\":54,\"level\":1,\"tag\":1},{\"fNum\":\"330727FF0115\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":18.5,\"hour3\":72.5,\"hour6\":72.5,\"hour12\":72.5,\"hour24\":72.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0115\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":9.5,\"hour3\":82,\"hour6\":82,\"hour12\":82,\"hour24\":82,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0115\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":2,\"hour3\":30,\"hour6\":84,\"hour12\":84,\"hour24\":84,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0115\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":0.5,\"hour3\":12,\"hour6\":84.5,\"hour12\":84.5,\"hour24\":84.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0115\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":84.5,\"hour12\":84.5,\"hour24\":84.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0148\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":54,\"hour3\":54,\"hour6\":54,\"hour12\":54,\"hour24\":54,\"level\":1,\"tag\":1},{\"fNum\":\"330727FF0148\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":18.5,\"hour3\":72.5,\"hour6\":72.5,\"hour12\":72.5,\"hour24\":72.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0148\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":9.5,\"hour3\":82,\"hour6\":82,\"hour12\":82,\"hour24\":82,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0148\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":2,\"hour3\":30,\"hour6\":84,\"hour12\":84,\"hour24\":84,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0148\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":0.5,\"hour3\":12,\"hour6\":84.5,\"hour12\":84.5,\"hour24\":84.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0148\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":84.5,\"hour12\":84.5,\"hour24\":84.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0149\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":54,\"hour3\":54,\"hour6\":54,\"hour12\":54,\"hour24\":54,\"level\":1,\"tag\":1},{\"fNum\":\"330727FF0149\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":18.5,\"hour3\":72.5,\"hour6\":72.5,\"hour12\":72.5,\"hour24\":72.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0149\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":9.5,\"hour3\":82,\"hour6\":82,\"hour12\":82,\"hour24\":82,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0149\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":2,\"hour3\":30,\"hour6\":84,\"hour12\":84,\"hour24\":84,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0149\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":0.5,\"hour3\":12,\"hour6\":84.5,\"hour12\":84.5,\"hour24\":84.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0149\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":84.5,\"hour12\":84.5,\"hour24\":84.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0171\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":54,\"hour3\":54,\"hour6\":54,\"hour12\":54,\"hour24\":54,\"level\":1,\"tag\":1},{\"fNum\":\"330727FF0171\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":18.5,\"hour3\":72.5,\"hour6\":72.5,\"hour12\":72.5,\"hour24\":72.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0171\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":9.5,\"hour3\":82,\"hour6\":82,\"hour12\":82,\"hour24\":82,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0171\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":2,\"hour3\":30,\"hour6\":84,\"hour12\":84,\"hour24\":84,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0171\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":0.5,\"hour3\":12,\"hour6\":84.5,\"hour12\":84.5,\"hour24\":84.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0171\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":84.5,\"hour12\":84.5,\"hour24\":84.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0172\",\"groupTime\":\"2022-03-14T20:00:00+08:00\",\"hour1\":54,\"hour3\":54,\"hour6\":54,\"hour12\":54,\"hour24\":54,\"level\":1,\"tag\":1},{\"fNum\":\"330727FF0172\",\"groupTime\":\"2022-03-14T21:00:00+08:00\",\"hour1\":18.5,\"hour3\":72.5,\"hour6\":72.5,\"hour12\":72.5,\"hour24\":72.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0172\",\"groupTime\":\"2022-03-14T22:00:00+08:00\",\"hour1\":9.5,\"hour3\":82,\"hour6\":82,\"hour12\":82,\"hour24\":82,\"level\":2,\"tag\":1},{\"fNum\":\"330727FF0172\",\"groupTime\":\"2022-03-14T23:00:00+08:00\",\"hour1\":2,\"hour3\":30,\"hour6\":84,\"hour12\":84,\"hour24\":84,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0172\",\"groupTime\":\"2022-03-15T00:00:00+08:00\",\"hour1\":0.5,\"hour3\":12,\"hour6\":84.5,\"hour12\":84.5,\"hour24\":84.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0172\",\"groupTime\":\"2022-03-15T01:00:00+08:00\",\"hour1\":0,\"hour3\":2.5,\"hour6\":84.5,\"hour12\":84.5,\"hour24\":84.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0015\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":39,\"hour3\":45.5,\"hour6\":45.5,\"hour12\":45.5,\"hour24\":45.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0017\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":52.5,\"hour3\":56.5,\"hour6\":56.5,\"hour12\":56.5,\"hour24\":56.5,\"level\":1,\"tag\":1},{\"fNum\":\"330727FF0017\",\"groupTime\":\"2022-06-29T20:00:00+08:00\",\"hour1\":1,\"hour3\":57.5,\"hour6\":57.5,\"hour12\":57.5,\"hour24\":57.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0024\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":52.5,\"hour3\":56.5,\"hour6\":56.5,\"hour12\":56.5,\"hour24\":56.5,\"level\":1,\"tag\":1},{\"fNum\":\"330727FF0024\",\"groupTime\":\"2022-06-29T20:00:00+08:00\",\"hour1\":1,\"hour3\":57.5,\"hour6\":57.5,\"hour12\":57.5,\"hour24\":57.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0022\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":39,\"hour3\":45.5,\"hour6\":45.5,\"hour12\":45.5,\"hour24\":45.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0045\",\"groupTime\":\"2022-06-29T18:00:00+08:00\",\"hour1\":31,\"hour3\":31,\"hour6\":31,\"hour12\":31,\"hour24\":31,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0075\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":39,\"hour3\":45.5,\"hour6\":45.5,\"hour12\":45.5,\"hour24\":45.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0112\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":52.5,\"hour3\":56.5,\"hour6\":56.5,\"hour12\":56.5,\"hour24\":56.5,\"level\":1,\"tag\":1},{\"fNum\":\"330727FF0112\",\"groupTime\":\"2022-06-29T20:00:00+08:00\",\"hour1\":1,\"hour3\":57.5,\"hour6\":57.5,\"hour12\":57.5,\"hour24\":57.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0124\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":39,\"hour3\":45.5,\"hour6\":45.5,\"hour12\":45.5,\"hour24\":45.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0188\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":40,\"hour3\":48.5,\"hour6\":48.5,\"hour12\":48.5,\"hour24\":48.5,\"level\":3,\"tag\":1},{\"fNum\":\"330727FF0241\",\"groupTime\":\"2022-06-29T19:00:00+08:00\",\"hour1\":39,\"hour3\":45.5,\"hour6\":45.5,\"hour12\":45.5,\"hour24\":45.5,\"level\":3,\"tag\":1}]";
List<RiskForecastDTO> list = JSONArray.parseArray(data,RiskForecastDTO.class);
// 第一种去重
test(list);
// 第二种去重
if(list.size() >0) {
// 去重
list = list.stream().filter(distinctByKey(p -> p.getFNum()))
.collect(Collectors.toList());
}
System.out.println(JsonUtil.toJson(list));
}
/**
* 根据指定字段去重
* @param keyExtractor
* @param <T>
* @return
*/
private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
ConcurrentHashMap<Object, Boolean> map = new ConcurrentHashMap<>();
return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
/**
* 第一种方式去重-根据指定字段
* @param list
*/
public static void test(List<RiskForecastDTO> list){
ArrayList<RiskForecastDTO> collect = list.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(
Comparator.comparing(
RiskForecastDTO::getFNum))), ArrayList::new));
System.out.println(JsonUtil.toJson(collect));
}
}