gpt4 book ai didi

java - 从 Android 月份重新排列 ArrayList

转载 作者:行者123 更新时间:2023-12-01 11:58:18 24 4
gpt4 key购买 nike

下面的 JSONArray 应根据键“date_course”重新排列。例如,2015 年,

一月

--- 所有一月项目

--

二月

--- 所有二月项目

--

三月

--- 所有三月项目

--

四月

--- 所有四月项目

--

..等等。

 [
{
"id": "1",
"date_course": "2015-01-29",
"nom": "Wow Urbain de St Pierre",
"lieu": "St Pierre",
"zone": "Nord",
"distance": "15",
"denivele": "5000m cumule",
"lieu_depart": "St-Pierre",
"lieu_arrivee": "Fin de chantier",
"tarifs": "15",
"dossards": "Ou recuperer les dossards",
"challenge": "Challenge Decathlon",
"parcours": "information",
"image_parcours": "link to image",
"organisateur_id": "1",
"nom_organisateur": "Organisateur 1",
"email_organisateur": "organisateur1@gmail.com",
"telephone_organisateur": "1234343",
"site_web_organisateur": "site.com",
"site_inscription_organisateur": null,
"course_qualificative": "0",
"categorie_id": "1"
},
{
"id": "2",
"date_course": "2015-01-09",
"nom": "Sentier de L'onf: La Providenc",
"lieu": "Saint Denis",
"zone": "Nord",
"distance": "11",
"denivele": "800m cumule",
"lieu_depart": "Allee de la foret 97400 Saint Denis",
"lieu_arrivee": "Saint Denis",
"tarifs": "18",
"dossards": "Ou recuperer les dossards",
"challenge": "Challenge Wow",
"parcours": "information",
"image_parcours": "link to image",
"organisateur_id": "2",
"nom_organisateur": "Organisateur 2",
"email_organisateur": "organisateur2@gmail.com",
"telephone_organisateur": null,
"site_web_organisateur": null,
"site_inscription_organisateur": null,
"course_qualificative": "1",
"categorie_id": "2"
},
{
"id": "3",
"date_course": "2014-12-17",
"nom": "Wow Urbain de St Paul",
"lieu": "St Paul",
"zone": "Est",
"distance": "19",
"denivele": "500m cumule",
"lieu_depart": "St-Paul",
"lieu_arrivee": "St-Paul",
"tarifs": "10",
"dossards": "Ou recuperer les dossards",
"challenge": "Challenge City Sport",
"parcours": "information",
"image_parcours": "link to image",
"organisateur_id": "2",
"nom_organisateur": "Organisateur 3",
"email_organisateur": "organisateur3@gmail.com",
"telephone_organisateur": "35645654",
"site_web_organisateur": "organisateur.com",
"site_inscription_organisateur": "siteinscription.com",
"course_qualificative": "0",
"categorie_id": "3"
},
{
"id": "4",
"date_course": "2015-03-11",
"nom": "Sentier de la Marie",
"lieu": "St Gilles",
"zone": "Ouest",
"distance": "14",
"denivele": "800m cumule",
"lieu_depart": "Mairie de St Gilles",
"lieu_arrivee": "Mairie de St Gilles",
"tarifs": "18",
"dossards": "Ou recuperer les dossards",
"challenge": "Challenge Wow",
"parcours": "information",
"image_parcours": "link to image",
"organisateur_id": "2",
"nom_organisateur": "Organisateur 4",
"email_organisateur": null,
"telephone_organisateur": null,
"site_web_organisateur": "organisateur4.com",
"site_inscription_organisateur": "organisateur4.com",
"course_qualificative": "0",
"categorie_id": "1"
}
]

我提取了每个 date_course 标签的年份和月份,但现在我陷入了匹配日期和重新排列数组列表的困境。这是我的工作。

ArrayList<CourseCopy>filteredList = new ArrayList<CourseCopy>();

Date date = null;
if (myApp.getArrCalendarModelList()!=null){
calItem = myApp.getArrCalendarModelList();
for (int i=0;i<calItem.size();i++){
String string = calItem.get(i).date_course;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
try {
date = format.parse(string);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

filteredList.add(new CourseCopy(date,calItem.get(i).nom,calItem.get(i).lieu,calItem.get(i).zone,calItem.get(i).distance,calItem.get(i).denivele,
calItem.get(i).lieu_depart,calItem.get(i).lieu_arrivee,calItem.get(i).tarifs,calItem.get(i).dossards,calItem.get(i).challenge,
calItem.get(i).parcours,calItem.get(i).image_parcours,calItem.get(i).organisateur_id,calItem.get(i).nom_organisateur,calItem.get(i).email_organisateur,
calItem.get(i).telephone_organisateur,calItem.get(i).site_web_organisateur,calItem.get(i).site_inscription_organisateur,calItem.get(i).course_qualificative,calItem.get(i).categorie_id));

}

Collections.sort(filteredList, new Comparator<CourseCopy>() {
@Override
public int compare(CourseCopy lhs, CourseCopy rhs) {
// TODO Auto-generated method stub
return lhs.getDate_course().compareTo(rhs.getDate_course());
}
});
}

有人可以给我提示或帮助我得到想要的结果吗?

最佳答案

只需将字符串日期转换为日期对象

for (int i=0;i<calItem.size();i++){
String string = calItem.get(i).date_course;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date date = format.parse(string);
calItem.get(i).setDate(date);
}

在 calItem 中的每个项目中存储日期
之后你可以像这样排序

Collections.sort(calItem, new Comparator<Item>() {
public int compare(Item o1, Item o2) {
return o1.getDate().compareTo(o2.getDate());
}
});

更新:
你可以这样调用它

if (myApp.getArrCalendarModelList()!=null){
calItem = myApp.getArrCalendarModelList();
for (int i=0;i<calItem.size();i++){
String string = calItem.get(i).date_course;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date date = format.parse(string);
calItem.get(i).setDate(date);
}
Collections.sort(calItem, new Comparator<Item>() {
public int compare(Item o1, Item o2) {
return o1.getDate().compareTo(o2.getDate());
}
});
}

关于java - 从 Android 月份重新排列 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28187212/

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