Android 拆分树形图<;列表<>;,列表<&燃气轮机&燃气轮机;分成两个数组列表
我有两个Android 拆分树形图<;列表<>;,列表<&燃气轮机&燃气轮机;分成两个数组列表,android,arraylist,treemap,Android,Arraylist,Treemap,我有两个数组列表: List<String> names = new ArrayList<String>(10); List<Drawable> drawables = new ArrayList<Drawable>(10); 前两个问题 地图现在是否按字典顺序排序?还是我需要做些额外的事情 在对它们进行排序之后,如果它们仍然是,我想将它们再次拆分回List和List。我试着这样做: List<String> sortedNames
数组列表
:
List<String> names = new ArrayList<String>(10);
List<Drawable> drawables = new ArrayList<Drawable>(10);
前两个问题
地图现在是否按字典顺序排序?还是我需要做些额外的事情
在对它们进行排序之后,如果它们仍然是,我想将它们再次拆分回List
和List
。我试着这样做:
List<String> sortedNames = new ArrayList<String>(myMapToSort.keySet());
List sortedNames=new ArrayList(myMapToSort.keySet());
当然,它不起作用,因为myMapToSort.keySet()
返回一个Set
,而不是List
。
而列表
对于集合
没有构造函数
那么,我如何才能做到这一点,以及我误解了什么
感谢您的帮助。提前谢谢 您可以使用SortedSet(或SortedList)对元素进行排序。元素使用其自然顺序进行排序,或通过通常在排序集创建时提供的比较器进行排序
用于将地图拆分为两个列表:
List<String> sortedNames = new ArrayList<String>();
List<Drawable> drawables = new ArrayList<Drawable>();
for (Map.Entry<String, Drawable> entry : map.entrySet())
{
sortedNames.add(entry.getKey()
drawables.add(entry.getValue());
}
List sortedNames=new ArrayList();
List drawables=new ArrayList();
对于(Map.Entry:Map.entrySet())
{
sortedNames.add(entry.getKey()
add(entry.getValue());
}
我自己想出来的
关键是创建一个TreeMap
,其中不是两个列表,而是两个单独的对象:
Map<String, Drawable> myTreeMap = new TreeMap<String, Drawable>;
现在,地图将根据可绘图项自动按词典排序。
这意味着,名称和可绘图项按字典顺序排序
如果要检索键
和值
,并将它们放回单独的数组列表
,只需键入:
List <String> mySortedNames = new ArrayList<String>(myTreeMap.keySet());
List <Drawables> mySortedDrawables = new ArrayList<Drawables>(myTreeMap.values());
List mySortedNames=newArrayList(myTreeMap.keySet());
List mySorteAddressables=newArrayList(myTreeMap.values());
就是这样。不起作用我得到了一个12-25 23:39:06.167:E/AndroidRuntime(12422):java.lang.ClassCastException:java.util.ArrayList不可比性
这不是问题,我以那种方式实现它,因为我认为你忘记了那个细节,而我是实现它的唯一合乎逻辑的方法。但是我自己想出来了,我会把答案贴出来。不过还是要谢谢你的帮助!一定有一个非常嫉妒的用户,他在没有提供潜在改进的情况下否决了一个普通问题!;)
for(int i = 0; i<names.size(); i++) {
myTreeMap.put(names.get(i), drawables.get(i));
}
List <String> mySortedNames = new ArrayList<String>(myTreeMap.keySet());
List <Drawables> mySortedDrawables = new ArrayList<Drawables>(myTreeMap.values());