android - 如何按字母顺序对我的地图数组列表进行排序
问题描述
我在微调器中的项目没有按字母顺序显示在我的应用程序中,因为它是在我的代码中编写的,我希望 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
但我想要这样
阿拉伯语 英语 法语 豪萨语 伊博语 日语 约鲁巴语
解决方案
在您的代码中,而不是
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());
推荐阅读
- python - 我是否需要将 python 从 3.8.2 降级到 3.7 才能运行 Anaconda Python 3.7 安装程序?
- php - 防止类条目复制到数据库中
- javascript - 使用 Apify Puppeteer 爬行的内存问题
- javascript - React Hook useEffect 缺少依赖,使用 Redux
- reactjs - Firebase 托管是否允许环境变量?
- tensorflow - 如何使用 CNN 层应用高级激活层?
- node.js - Nodemailer 消息配置缺少“发件人”
- ios - Swift 到 SwiftUI 迁移问题
- c++ - 是否保证 intptr_t 通过 uintptr_t 安全往返?
- python - 如何检查用户输入是否在字符列表中具有相同的字符?