我想在排序列表中生成所有国家/地区的列表。我尝试过:
public Map<String, String> getCountryNameCodeList() {
String[] countryCodes = Locale.getISOCountries();
Arrays.sort(countryCodes);
Map<String, String> list = new HashMap<>();
for (String countryCode : countryCodes) {
Locale obj = new Locale("", countryCode);
list.put(obj.getDisplayCountry(), obj.getCountry());
}
return list;
}
但是由于某种原因,列表未排序。要塞的正确方法是什么?
答案 0 :(得分:2)
HashMap
未排序,请使用LinkedHashMap
:
此实现与HashMap的不同之处在于,它维护了 在其所有条目中运行的双向链表。这个链接 列表定义了迭代顺序,通常是 哪些键已插入地图(插入顺序)。
只是改变
Map<String, String> list = new HashMap<>();
收件人:
Map<String, String> list = new LinkedHashMap<>();