Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 嵌套映射<;K、 V>';s而不是列表<;对象[]>;作为返回值。有什么问题吗?_Java_Jsp_Map_Nested_Report - Fatal编程技术网

Java 嵌套映射<;K、 V>';s而不是列表<;对象[]>;作为返回值。有什么问题吗?

Java 嵌套映射<;K、 V>';s而不是列表<;对象[]>;作为返回值。有什么问题吗?,java,jsp,map,nested,report,Java,Jsp,Map,Nested,Report,这种情况发生在从数据库获取一些数据以组成按不同字段分组的报告时。例如,按月份分组,然后键入,然后是实际vs预测。数据库查询只返回一个列表。但是直接将其呈现为HTML表是很无聊的。我要做的是将数据分组到地图中。它可以用一种简单的方式完成,如果我使用树形图,数据会自动为我排序。生成的JSP代码要简单得多 这种方法有什么问题吗?(内存、速度或其他?HTML呈现程序不必知道DAO的实现细节 我认为对于youdao来说,返回List比返回Map更简单。每个类接口都应该易于理解,因此我将使用List 如果使

这种情况发生在从数据库获取一些数据以组成按不同字段分组的报告时。例如,按月份分组,然后键入,然后是实际vs预测。数据库查询只返回一个列表。但是直接将其呈现为HTML表是很无聊的。我要做的是将数据分组到地图中。它可以用一种简单的方式完成,如果我使用树形图,数据会自动为我排序。生成的JSP代码要简单得多


这种方法有什么问题吗?(内存、速度或其他?

HTML呈现程序不必知道DAO的实现细节

我认为对于youdao来说,返回
List
比返回
Map
更简单。每个类接口都应该易于理解,因此我将使用
List

如果使用
Map
呈现HTML表更简单,那么最好创建一个方法,将
List
转换为
Map

通过这种方式,您可以将UI与数据库类分离

您还询问了内存和速度。我认为最好的方法是测试这两种情况,并使用分析器来衡量这是否真的是一个问题

这种方法有什么问题吗?(内存、速度还是其他?)

树映射将使用比ArrayList更多的内存,可能比LinkedList更多。可能会慢一些。。。或者更快。。。具体取决于列表的排序和使用方式


但是,除非数据结构真的很大,否则差异可能不会明显。最好的方法是从提供最简单和最健壮代码的数据结构开始。如果(且仅当)性能明显缓慢,您应该花时间进行优化,并且只有在分析告诉您这是性能问题的原因时,才应该进行优化。

我猜GUI应该接收非常简单的数据结构,从某种意义上说,它应该易于使用/理解。这可以让不编程的web设计师保持页面的整洁和可编辑性(想想三个嵌套的s和一个带有大量标志和条件的s)。也许让DAO负责对其输出进行分组和排序是不明智的。我想我会让托管bean/控制器来完成这项工作。因此,我可以灵活地以各种方式对DAO的输出进行分组和排序。