gpt4 book ai didi

java - 如何重新排序以下列表数据

转载 作者:行者123 更新时间:2023-11-29 10:13:37 26 4
gpt4 key购买 nike

我将有一个以这种方式包含日期的列表 mm/YYYY 。我需要重新排序列表中的数据。

首先:

在列表中我将有如下数据

        yearList.add("042011");
yearList.add("052011");
yearList.add("062011");
yearList.add("072011");
yearList.add("082011");
yearList.add("092011");
yearList.add("102010");
yearList.add("112010");
yearList.add("122010");
yearList.add("012011");
yearList.add("022011");
yearList.add("032011");

我使用了 Collections.sort(yearList); 但输出给了我

[012011, 022011, 032011, 042011, 052011, 062011, 072011, 082011, 092011, 102010, 112010, 122010]

但我需要如下输出。

[102010, 112010, 122010, 012011, 022011, 032011, 042011, 052011, 062011, 072011, 082011, 092011]

最佳答案

基本上,您当前的列表是按“文本自然”顺序排序的,不会像您预期的那样对数字(或日期)进行排序。相反,您需要提供一个自定义的 Comparator 来更改排序的方式,例如

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

public class SortList {

public static void main(String[] args) {
List<String> yearList = new ArrayList<>(25);
yearList.add("042011");
yearList.add("052011");
yearList.add("062011");
yearList.add("072011");
yearList.add("082011");
yearList.add("092011");
yearList.add("102010");
yearList.add("112010");
yearList.add("122010");
yearList.add("012011");
yearList.add("022011");
yearList.add("032011");

Collections.sort(yearList, new Comparator<String>() {
private DateFormat format = new SimpleDateFormat("MMyyyy");

@Override
public int compare(String o1, String o2) {
int result = 0;
try {
Date d1 = format.parse(o1);
try {
Date d2 = format.parse(o2);
result = d1.compareTo(d2);
} catch (ParseException ex) {
result = -1;
}
} catch (ParseException ex) {
result = 1;
}
return result;
}
});
System.out.println(yearList);
}

}

输出 [102010, 112010, 122010, 012011, 022011, 032011, 042011, 052011, 062011, 072011, 082011, 092011]

仔细看看`Collections.sort(List, Comparator)

关于java - 如何重新排序以下列表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25007025/

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