【发布时间】:2018-07-09 11:14:05
【问题描述】:
我有一个LinkedHashMap<String,String>,看起来像这样(不知道如何说明 HashMap):
{
"10/10/2010 10:10:10" => "SomeText1",
"10/10/2019 10:10:19" => "SomeText2",
"10/10/2020 10:10:20" => "SomeText3",
"10/10/2021 10:10:21" => "SomeText4"
}
我想这样说:
{
"10/10/2021 10:10:21" => "SomeText4",
"10/10/2020 10:10:20" => "SomeText3",
"10/10/2019 10:10:19" => "SomeText2",
"10/10/2010 10:10:10" => "SomeText1"
}
我已经编写了这个可行的解决方案,因为我想要的结果是一个 ArrayList,但我在想是否有更简单的方法来反转 LinkedHashMap,使用像 sort 这样的工具来保持相同的类型例子。
private LinkedHashMap<String, String> map = new LinkedHashMap<>();
int sizeOfHashMap = map.size();
ArrayList reversedHashToArrayList = new ArrayList(map.size());
for (Map.Entry<String,String> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
reversedHashToArrayList.add(0,entry);
}
【问题讨论】:
-
你真的需要倒过来的
LinkedHashMap吗?在需要的地方以相反的顺序迭代它不是更简单吗? -
任何地图都是无序结构。您不能指望地图上有任何个订单。它的唯一目的是存储键值对。集合中键的顺序可以在运行时轻松更改,您永远不要期望地图中的任何顺序
-
@VladyslavMatviienko 好吧,这正是您使用具有可预测迭代顺序的
LinkedHashMap的原因... -
@VladyslavMatviienko 这就是我使用 LinkedHasMap 的原因,正如 Ben 解释的那样
标签: java android hashmap linkedhashmap