如何按字母顺序对我的地图数组列表进行排序



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

在下面查看我的代码

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());

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

但我想这样

阿拉比英语法语豪萨Igbo日本人约鲁巴

在您的代码中,而不是

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());

最新更新