Android java:如何正确地将排序后的数据发送到listView?
我在System.currentTimeMillis()/1000和FindedUser类中以整数为时间戳的格式映射对数据进行排序Android java:如何正确地将排序后的数据发送到listView?,java,android,android-listview,Java,Android,Android Listview,我在System.currentTimeMillis()/1000和FindedUser类中以整数为时间戳的格式映射对数据进行排序 Map reverseSortedMap=newtreemap(Collections.reverseOrder()); reverseSortedMap.putAll(AddedUserMap); 对于(Map.Entry:reverseSortedMap.entrySet()){ FindedUser user=entry.getValue(); System.
Map reverseSortedMap=newtreemap(Collections.reverseOrder());
reverseSortedMap.putAll(AddedUserMap);
对于(Map.Entry:reverseSortedMap.entrySet()){
FindedUser user=entry.getValue();
System.out.println(entry.getKey()+“”+entry.getValue());
helperMap.put(entry.getKey(),new FindedUser(user.getId(),user.getName(),user.getTimestamp());
}
得到了正确的数据
1609093171 FindedUser{name='ccc',id='11',timestamp='1609093171'}
1609092871 FindedUser{name='bbb',id='10',timestamp='1609092871'}
1609092015 FindedUser{name='aaa',id='9',timestamp='1609092015'}
但当我将其发送到listView时:
MyAdapterHash AddedUserAdapter=新的MyAdapterHash(helperMap);
setAdapter(AddedUserAdapter);
AddedUserAdapter.notifyDataSetChanged();
结果排序不正确:
1609092015 FindedUser{name='aaa',id='9',timestamp='1609092015'}
1609093171 FindedUser{name='ccc',id='11',timestamp='1609093171'}
1609092871 FindedUser{name='bbb',id='10',timestamp='1609092871'}
问题出在哪里?看起来
helperMap
的类型不符合插入顺序
将
helperMap
的类型更改为可预测的迭代顺序。看起来helperMap
的类型不保持插入顺序
更改为您提供可预测迭代顺序的
helperMap
的类型。映射是无序集合。你的MyAdapterHash
是如何实现的?我不知道在哪里可以编辑我的帖子,也不知道NyaptedHash是否正确实现,但映射类型存在问题@生活和让生活给我LinkedHashMap类型。ThanksA地图是一个无序的集合。你的MyAdapterHash
是如何实现的?我不知道在哪里可以编辑我的帖子,也不知道NyaptedHash是否正确实现,但映射类型存在问题@生活和让生活给我LinkedHashMap类型。谢谢你!这就是我需要的。不客气。谢谢!这正是我需要的。非常欢迎你。