【发布时间】:2012-01-12 13:04:32
【问题描述】:
我陷入了一个问题,未能在这里提出逻辑,希望你们能帮助我。有人在stackoverflow上问过同样的问题,我无法找到链接,它与发布的查询非常相似
我正在生成一份报告,用户在其中选择日期/日期并以此为基础 值正在从数据库中获取并显示在报告中。 Apache poi 被用于生成 excel 报告。
我有 4 个字段/列
ID Date true/false someaction
如果用户只选择了一个或多个日期,程序将所有的日期存储在一个Arraylist中,然后对其进行迭代以获取所选日期存储在数据库中的数据
伪代码
String checkLastCell = null;
for (Date listOfdates : datesL){
//query gets fired to the database by sending listOfdates as a parameter
for ( T tt : t) {
i = tt.getId(); //ID
j = tt.getDate(); //Date
k = tt.getTrueFalse(); // truefalse
and setting them on cells
for column l , i am writing some action based on the
l= Yes or No //someaction Yes or No
对于 Id =1 ,如果在 truefalse 列中设置 True,我需要在 Someaction 列中写 Yes
在下一次迭代中,如果 id = 2 ,并且在 truefalse 列中设置了 False,我会在 someaction 列中写 No,
1234563 )
if (lastcell 为 Null && t.getTrueFalse().equals("true") || lastcell 为 不为空 && t.getTrueFalse().equals("true")) if if (lastcell is Null && t.getTrueFalse().equals("false") || lastcell 不为空 && t.getTrueFalse().equals("false")) { 设置 动作为 NO } .....这里需要写一些更多的逻辑。
i++; // increment the row } } }
我需要建议/帮助来编写伪代码/算法
【问题讨论】:
-
你能给出一些示例输入和所需的输出吗?
-
您的示例非常令人困惑。如果您告诉使用 someaction 列的实际含义,将会有所帮助。另外,您遇到问题的哪一部分?是设计算法还是实现算法?
-
我建议你使用一些更有意义的名字,例如
truefalse表示一个布尔标志,但它的含义是什么?尝试为变量找到一些合理的名称,以便更轻松地阅读和理解您的代码(在您的情况下,i、j和k等变量名称也太通用了)。 - 此外,将yes 或no 设置为someAction的值表示它也是一个布尔字段。对吗? -
truefalse 不表示布尔值,请原谅我让它成为一个令人困惑的问题。它只是指示系统是 Up (true) 还是 Down(false)。我需要比较 ID 和此列并根据它编写操作。
-
我的问题是单个日期记录中可能存在大量 ID,如果选择了多个日期,将如何处理性能问题。