gpt4 book ai didi

java - 对字符串日期进行排序并对其进行排序

转载 作者:行者123 更新时间:2023-12-02 04:59:08 31 4
gpt4 key购买 nike

我想按日期对我的文章列表进行排序 (dd/mm/yyyy)。日期是字符串。

public class ArticleComparator implements Comparator<Article> {

@Override
public int compare(Article a1, Article a2) {
// TODO Auto-generated method stub
int result = a1.getDate().compareTo(a2.getDate());
if(result == 0)
result = a1.getAuteur().getPseudo().compareTo(a2.getAuteur().getPseudo());
return result;
}
public class ReseauSocial {

private HashMap<String, CompteUtilisateur> utilisateurs;
private List <Article> article;

public ReseauSocial() {
}

public void tirerArticles() {
Collections.sort(article, new ArticleComparator());
}

public void connecter(String pseudo, String mdp) {
}
}

但是你能帮我按从最新到最旧的顺序对日期进行排序

<小时/>

谢谢您的回答,但它不起作用。这是我修改代码后得到的

public class MainClass {

static List<Article> articles = new ArrayList<>();

public static void main(String[] args) {
// TODO Auto-generated method stub
Article a1 = new Article ("article1", "TP1", true, "01/02/2018");
Article a2 = new Article ("article2", "TP2", true, "01/02/2019");
articles.add(a1);
articles.add(a2);

ReseauSocial rsc = new ReseauSocial(articles);
rsc.tirerArticles();

for(int i = 0; i<articles.size(); i++) {
System.out.print("Articles : "+ articles.get(i).getDate().toString()+"\n");

}

}

}
Article 1 : Fri Feb 01 00:00:00 CET 2019
Articles 2 : Thu Feb 01 00:00:00 CET 2018
Articles : 01/02/2018
Articles : 01/02/2019

最佳答案

如果您使用已经可比较的数据类型(实现 Comparable),
那么你可以只返回它自己的 compareTo 方法的结果:

public int compare(Article a1, Article a2) {
// define a suitable formatter
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy");
// parse both dates
LocalDate ldOne = LocalDate.parse(a1.getDate(), dtf);
LocalDate ldTwo = LocalDate.parse(a2.getDate(), dtf);
// compare the dates and return the result
return ldOne.compareTo(ldTwo);
}

Please note that using Strings for dates is generally not a good practice. Consider refactoring your class attributes that represent dates to have a suitable data type.

关于java - 对字符串日期进行排序并对其进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56394619/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com