【发布时间】:2021-12-02 12:13:54
【问题描述】:
我有这样的地图:
Map<Date, List<T>> data = new HashMap<Date, List<T>>();
在 for 循环中,数据被添加到此数据映射中。
现在我必须将整个 Map 中的 Value 列合并到一个 List<T>。合并应根据 Key 即 Data 以升序进行。
我写了一个这样的 foreach 循环:
List<T> newData = new List<T>();
Iterator<Map.Entry<Date , List<T>>> itr = data.entrySet().iterator();
while(itr.hasNext())
{
Map.Entry<date, List<T>> entry = itr.next();
newData.addAll(entry.getValue());
}
在添加到newData 变量之前,如何按日期(键)进行排序。非常感谢任何帮助。
【问题讨论】:
-
使用
TreeMapMap<Date, List> data = new TreeMap<>(),添加时按键排序。 -
@ProGu ,所以如果我直接创建一个 TreeMap 并在其中添加值,我没有单独排序,是吗?有没有一种方法可以在不运行 while 或 foreach 循环的情况下合并 Value 列。如果你能给我一个例子,那会很有帮助。
-
是的 - 可以按任何顺序向 TreeMap 添加值 - 它保持其条目有序。从技术上讲,TreeMap 不保证它对其条目进行排序,它只保证它会按排序顺序遍历其条目。
标签: java dictionary