【问题标题】:PutAll to the Map without messing with orderPutAll 到地图而不弄乱顺序
【发布时间】:2013-06-14 18:31:33
【问题描述】:

我有这个简单的方法,它是我的CustomBaseAdapter 的一部分

public void setDays(Map<String, SimplifiedDay> sortedDays) {            
    days.clear();   
    days.putAll(sortedDays);        
    notifyDataSetChanged();
}

是的,我用Map 填充ListView。问题是,排序后的地图以sortedDays 的形式出现在方法中,但在putAll 之后,订单丢失了。我不能只做days = sortedDays;,因为BaseAdapter 会发疯。

这里的顺序如何保存?

【问题讨论】:

  • 'days' 的类别是什么? HashMap 不是有序的,但是 TreeMap 是。
  • 其实是个TreeMap
  • 带有自定义比较器的 TreeMap ?还是使用默认的字符串比较器?

标签: java android sorting treemap


【解决方案1】:

尝试将 LinkedHashMap 用于您的 day 课程,但不确定它目前是什么。

【讨论】:

  • LinkedHashMap 将按照它们放入的顺序保存。如果您使用的是 TreeMap,那么您使用的排序肯定有问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-18
相关资源
最近更新 更多