【发布时间】:2020-12-17 13:21:21
【问题描述】:
我需要根据最新日期删除重复项。
class Stat {
private String country;
private String state;
private String fullname;
Date indepdate;
public Stat(String country,String state,String fullname,int indepdate){
this.country=country;
this.state=state;
this.fullname=fullname;
this.indepdate=indepdate;
}
//also getters and setters
public String toString() {
return "("+country+","+state+","+fullname+","+indepdate+")";
}
}
ArrayList<Stat> stats =new ArrayList();
Stats.add(new Stat("USA", "Florida", "John Jones", 5/1/2020));
Stats.add(new Stat("USA", "Florida", "Jeff Cane", 4/1/2016));
Stats.add(new Stat("USA", "California", "Lisa Smith", 3/1/2000));
Stats.add(new Stat("Germany", "Florida", "Tom Joseph", 5/1/2019));
Stats.add(new Stat("Germany", "Florida", "Chris Richard", 5/1/2018));
Stats.add(new Stat("Germany", "California", "Nancy Diaz", 4/3/2015));
我需要删除重复的国家,只保留最新日期的国家。
列表应如下所示:
USA, florida, John James, 5/1/2020
Germany,Florida,Tom Joseph, 5/1/2019
到目前为止,我有以下内容:
Map<String, Map<String, List<Stat>>
groupByCountryAndCity = stats.
stream().
collect(
Collectors.
groupingBy(
Stat::getCountry,
Collectors.
groupingBy(
Stat::getIndepdate
)
)
);
【问题讨论】:
-
问题是……?
-
这不是你创建日期的方式。
-
如前所述,您的
Date未正确初始化,请尝试查看此处docs.oracle.com/javase/8/docs/api/java/util/Date.html
标签: java arraylist java-stream