首页 > 解决方案 > 如何按字母顺序对我的地图数组列表进行排序

问题描述

我在微调器中的项目没有按字母顺序显示在我的应用程序中,因为它是在我的代码中编写的,我希望 KEY 在我的代码中列出它们时按字母顺序显示。

在下面查看我的代码

  spinner = (Spinner)  findViewById(R.id.spinner);

 final Map<String, String> flanguages = new HashMap<String, String>();
flanguages.put("Arabic", "ar");
flanguages.put("English", "en");
flanguages.put("French", "fr");
flanguages.put("Hausa", "ha");
flanguages.put("Igbo", "ig");
flanguages.put("Japanese", "ja");
flanguages.put("Yoruba", "yo");


 final List<String> list = new ArrayList<String>(flanguages.keySet());

这是 ho 它现在显示在我的应用程序上 英语 法语 阿拉伯语 豪萨语 日语 gboYoruba

但我想要这样

阿拉伯语 英语 法语 豪萨语 伊博语 日语 约鲁巴语

标签: androidsortingarraylisthashmapspinner

解决方案


在您的代码中,而不是

 final Map<String, String> flanguages = new HashMap<String, String>();

利用

 final Map<String, String> flanguages = new TreeMap<String, String>();

由于 HashMap 不会按顺序存储键,因此它将用于查找。因此,为了按排序顺序存储键,最好使用 TreeMap

以下是完整代码,仅供参考

final Map<String, String> flanguages = new TreeMap<String, String>();
flanguages.put("Arabic", "ar");
flanguages.put("English", "en");
flanguages.put("French", "fr");
flanguages.put("Hausa", "ha");
flanguages.put("Igbo", "ig");
flanguages.put("Japanese", "ja");
flanguages.put("Yoruba", "yo");


 final List<String> list = new ArrayList<String>(flanguages.keySet());

推荐阅读