java HahsMap 取出数据进行排序,并且返回这个排序后的结果!

jie251096409 2017-04-10 01:08:47
如题,请问该怎么操作?
功能:用于显示站点的集合
返回的应该是站点对象的集合还是 这些站点的字符串集合啊?
public ArrayList<Station> listStation() {
Object[] obj = this.stations.keySet().toArray();
Arrays.sort(obj);
return 该返回什么?
}
...全文
326 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jie251096409 2017-04-11
  • 打赏
  • 举报
回复
引用 3 楼 u012318873 的回复:
[quote=引用 2 楼 jie251096409 的回复:] [quote=引用 1 楼 u012318873 的回复:] ArrayList<Station> 你的方法返回值是这个。 首先你的Station应该是一个HashMap把,其实有点搞笑,你方法一顿操作就算排序了,你返回结果 ArrayList<Station(HashMap)> 也不会是有序的,因为HashMap是无序的。 除非你将Station的类型改成LinkedHashMap,或者是你自己维护一套排序后的LinkedHashMap供自己使用
大哥说的对,我想了一下确实是这样! 我现在修改成这样了麻烦看一下这样对不对 public Object[] listStation() { Object[] obj = this.stations.keySet().toArray(); Arrays.sort(obj); return obj; } 我的本意是 有一个方法来调用这个方法,这个方法只是相当于用来查询这个HashMap里面的结果,然后排序. 最后返回给一个有序的集合给调用者. [/quote] 如果你不需要被排序的HashMap的key value映射, 就可以这样了。 如果你是想把HashMap按照key排序,且最后输出的还要是key-value的集合的话就可以考虑使用一下LinkedHashMap或者是TreeMap,这两个东西都是带排序功能的。[/quote] 我现在用了Arrays排序功能但是结果没有排序成功还是显示的是乱的! 那我试试treemap
_jant 2017-04-10
  • 打赏
  • 举报
回复
引用 2 楼 jie251096409 的回复:
[quote=引用 1 楼 u012318873 的回复:] ArrayList<Station> 你的方法返回值是这个。 首先你的Station应该是一个HashMap把,其实有点搞笑,你方法一顿操作就算排序了,你返回结果 ArrayList<Station(HashMap)> 也不会是有序的,因为HashMap是无序的。 除非你将Station的类型改成LinkedHashMap,或者是你自己维护一套排序后的LinkedHashMap供自己使用
大哥说的对,我想了一下确实是这样! 我现在修改成这样了麻烦看一下这样对不对 public Object[] listStation() { Object[] obj = this.stations.keySet().toArray(); Arrays.sort(obj); return obj; } 我的本意是 有一个方法来调用这个方法,这个方法只是相当于用来查询这个HashMap里面的结果,然后排序. 最后返回给一个有序的集合给调用者. [/quote] 如果你不需要被排序的HashMap的key value映射, 就可以这样了。 如果你是想把HashMap按照key排序,且最后输出的还要是key-value的集合的话就可以考虑使用一下LinkedHashMap或者是TreeMap,这两个东西都是带排序功能的。
jie251096409 2017-04-10
  • 打赏
  • 举报
回复
引用 1 楼 u012318873 的回复:
ArrayList<Station> 你的方法返回值是这个。 首先你的Station应该是一个HashMap把,其实有点搞笑,你方法一顿操作就算排序了,你返回结果 ArrayList<Station(HashMap)> 也不会是有序的,因为HashMap是无序的。 除非你将Station的类型改成LinkedHashMap,或者是你自己维护一套排序后的LinkedHashMap供自己使用
大哥说的对,我想了一下确实是这样! 我现在修改成这样了麻烦看一下这样对不对 public Object[] listStation() { Object[] obj = this.stations.keySet().toArray(); Arrays.sort(obj); return obj; } 我的本意是 有一个方法来调用这个方法,这个方法只是相当于用来查询这个HashMap里面的结果,然后排序. 最后返回给一个有序的集合给调用者.
_jant 2017-04-10
  • 打赏
  • 举报
回复
ArrayList<Station> 你的方法返回值是这个。 首先你的Station应该是一个HashMap把,其实有点搞笑,你方法一顿操作就算排序了,你返回结果 ArrayList<Station(HashMap)> 也不会是有序的,因为HashMap是无序的。 除非你将Station的类型改成LinkedHashMap,或者是你自己维护一套排序后的LinkedHashMap供自己使用

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧