最好使用TreeMap还是按顺序排序?

时间:2010-01-22 19:17:17

标签: java

什么是更好的编程实践?

在sql中使用order by子句或者将结果放在java中的treemap vs hashmap中是否更适合下拉?

4 个答案:

答案 0 :(得分:3)

如果您正在考虑性能,那么在数据库端更好地对大结果集进行排序,尤其是在对要排序的列进行索引时。

对于较小的数据集,性能差异可能不大,但我认为在大多数情况下,SQL的Order By子句将是更简单的方法。

顺便提一下,如果必须在使用之前将已排序的数据存储在地图中,则仍需要使用LinkedHashMap而不是普通的HashMap。因为LinkedHashMap将按照插入顺序保留数据,而HashMap则不会。

如果您希望数据在放入Map时自动排序,那么您将需要TreeMap或其他有序映射实现。

答案 1 :(得分:0)

很大程度上取决于实现,列表大小等。我想说如果你可以在你的sql查询中执行一个命令,这会将开销推到数据库中,你就不必进行排序了。应用程序。还要确保在应用程序中使用的数据结构保留顺序,即不将结果插入到散列映射中。但很大程度上取决于你想要实现的目标。

答案 2 :(得分:0)

还取决于您尝试“按顺序”执行的字段,或者使用它在Java代码中随意排序。但在大多数情况下,我会依赖数据库执行命令。

答案 3 :(得分:0)

首先关闭..

使用HashMap会破坏SQL中'order by'的任何尝试,因为您无法保证取回您放置项目的顺序。因此,如果您在SQL中使用“order by”,则会被迫使用LinkedHashMap进行存储以保留项目顺序。

如果你设置了一个有效的比较器,TreeMap会为你订购。

我的偏好将基于列表的大小和用法。如果很多人每天都会访问这个列表并刷新它,我宁愿让他们自己的用户界面处理订单..这部分真的取决于。