gpt4 book ai didi

java - 日历中的 getDisplayNames 给出未排序的月份

转载 作者:行者123 更新时间:2023-12-05 00:38:57 25 4
gpt4 key购买 nike

我像这样从 Calendar 中成功获取月份:

monthMap = calendar.getDisplayNames(Calendar.MONTH, Calendar.LONG, Locale.getDefault());

但是月份看起来像:

enter image description here

无论如何,我会在 1 月 1 日以索引 0 获取它们,然后是其余的吗?

我会对列表进行排序,但没有排序标准。

有什么想法吗?

最佳答案

您得到的 map 完全未排序,因此您需要按值实现排序标准

 Map<String, Integer> map = Calendar.getInstance().getDisplayNames(Calendar.MONTH, Calendar.LONG,
Locale.getDefault());
List<Entry<String, Integer>> months = new ArrayList<>(map.entrySet());
months.sort((e1, e2) -> Integer.compare(e1.getValue(), e2.getValue()));
months.stream().forEach(System.out::println);

或者您可以考虑使用自 java8 以来的 java.time 功能,因为我们都应该停止学习旧的坏/邪恶/损坏的 java 日历:

Month month = Month.JUNE;

for (Month m : Month.values()) {
System.out.println(m);
}

或者保持与 java8 的一致性

Arrays.stream(Month.values()).forEach(System.out::println);

关于java - 日历中的 getDisplayNames 给出未排序的月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44657515/

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