Java 最好使用树形图还是按顺序?

Java 最好使用树形图还是按顺序?,java,Java,什么是更好的编程实践 在sql中使用order by子句还是将结果放在java中的treemap vs hashmap中用于下拉列表之类的事情更好?很大程度上取决于实现、列表大小等。我想说的是,如果您可以在sql查询中使用order by,这将增加数据库的开销,而不必在应用程序中进行排序。还要确保应用程序中使用的数据结构保留顺序,即不要将结果插入hashmap。但是,这在很大程度上取决于您试图实现的具体内容。还取决于您试图在Java代码中“按顺序”或使用它随意排序的字段。但在大多数情况下,我将依

什么是更好的编程实践


在sql中使用order by子句还是将结果放在java中的treemap vs hashmap中用于下拉列表之类的事情更好?

很大程度上取决于实现、列表大小等。我想说的是,如果您可以在sql查询中使用order by,这将增加数据库的开销,而不必在应用程序中进行排序。还要确保应用程序中使用的数据结构保留顺序,即不要将结果插入hashmap。但是,这在很大程度上取决于您试图实现的具体内容。

还取决于您试图在Java代码中“按顺序”或使用它随意排序的字段。但在大多数情况下,我将依靠DB来执行命令

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

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

顺便说一下,如果在使用之前必须将已排序的数据存储在映射中,那么您仍然必须使用LinkedHashMap而不是普通HashMap。因为LinkedHashMap将保持数据的插入顺序,而HashMap不会

如果希望数据在放入映射时自动排序,则需要TreeMap或其他排序映射实现

首先

使用HashMap将破坏SQL中的任何“order by”尝试,因为您不能保证恢复项目的放置顺序。因此,如果您在SQL中使用“order by”,您将被迫使用LinkedHashMap存储以保留项目顺序

如果你设置了一个有效的比较器,一个树映射将为你下订单


我的偏好取决于列表的大小和使用情况。如果很多人每天都会访问这个列表并刷新它,我更希望有他们自己的用户界面来处理订单。。这一部分取决于具体情况。

如果您提供一些有关正在编写的代码的详细信息,这个问题会更清楚。请记住,我们无法访问您头脑中的所有内容。链接的哈希映射不会排序。它只保留输入顺序。你可能在想树状图。没错,史蒂夫,我指的是树状图。你能纠正你的问题吗?如果你有合适的索引,数据库可以按所需的顺序读取记录,而不必对它们进行排序。根据查询的不同,数据库可能需要对记录进行排序,例如按分组或联合。在任何情况下,让SQL进行排序肯定更容易,因此在没有强大性能增益的情况下,我会选择更简单的代码。只要有可能,我就让SQL做所有的准备和排序,这样调用程序就可以读取记录并一次处理一条记录,而无需将它们放入任何结构中。