android - 将 TreeMap<List<>,List<>> 拆分为两个 ArrayList

标签 android arraylist treemap

我有两个ArrayLists :

List<String> names = new ArrayList<String>(10);
List<Drawable> drawables = new ArrayList<Drawable>(10);

我想按字母顺序排序。

为此我创建了一个 TreeMap :

Map<List<String>, List<Drawable>> myMapToSort = new TreeMap<List<String>, List<Drawable>>();
myMapToSort.put(names, drawables);

前两个问题

map 现在是在lexicographical中排序的吗?命令?或者我需要做一些额外的事情吗?

在我对它们进行排序之后,如果它们还存在,我想再次将它们拆分回 List<String>List<Drawable> .我试过这样:

List<String> sortedNames = new ArrayList<String>(myMapToSort.keySet());

当然不行,因为myMapToSort.keySet()返回 Set而不是 List . 和 List没有 Constructor对于 Set .

那么我怎样才能做到这一点以及我误解了什么?

感谢任何帮助。提前致谢!

最佳答案

我自己想出来的。

关键是创建一个 TreeMap,它不是两个列表,而是两个单独的对象:

Map<String, Drawable> myTreeMap = new TreeMap<String, Drawable>;

然后将Arraylists中的Items一个一个添加到Map中:

for(int i = 0; i<names.size(); i++) {
        myTreeMap.put(names.get(i), drawables.get(i));
}

现在 Map 会根据 Drawables 自动排序 Lexicographical。 这意味着 Names 和 Drawables 按字典顺序排序

如果您想检索并将它们放回单独的ArrayLists中,只需键入:

List <String> mySortedNames = new ArrayList<String>(myTreeMap.keySet());
List <Drawables> mySortedDrawables = new ArrayList<Drawables>(myTreeMap.values());

就是这样。 ;)

关于android - 将 TreeMap<List<>,List<>> 拆分为两个 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27651019/

相关文章:

android - Android 中 JSON 解析的最佳方式是什么?

android - 我如何从android中的复选框获取值

java - 访问对象数组列表中的特定元素

java: ArrayList() 方法返回结果:如果传递参数或不传递参数

java - 词频 - HashMap 或 TreeMap

java - 如何迭代 TreeMap 并使用反射来获取子类名称?

android - 应用程序运行良好,现在由于看似未知的原因而中断

Android Widget 随机停止工作

java - Arraylist 不断抛出 IndexOutOfBounds

css - 如何覆盖 Google Charts 上的 svg 属性