Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 设计循环的更好方法_Java_Loops - Fatal编程技术网

Java 设计循环的更好方法

Java 设计循环的更好方法,java,loops,Java,Loops,我想知道有没有更好的方法来设计循环。正如您所看到的,函数1和函数2的代码几乎相似,除了获得哈希映射 **现行代码1** //Field ResultSet rs = null; HashMap<Object, Object> hashMap1; HashMap<Object, Object> hashMap2; if(somecondition) { function1() } else { function2(); } void functio

我想知道有没有更好的方法来设计循环。正如您所看到的,函数1和函数2的代码几乎相似,除了获得哈希映射

**现行代码1**

//Field
 ResultSet rs = null;
 HashMap<Object, Object> hashMap1;
 HashMap<Object, Object> hashMap2;



if(somecondition)
{
   function1()
}
else
{
   function2();
}

void function1()
{
    while(rs.next)
    {
       hashMap1 = someClass.getData1();
       hashMap2 = someClass.getData2();
       // compareHashMap
   }

}

void function2()
{
    while(rs.next)
    {
       hashMap1 = someClass.getModfiedData1();
       hashMap2 = someClass.getModfiedData2(); 
        // compareHashMap
    }
 }
问题:

如果数据库中有10000条或更多记录,那么使用1是否更好

有没有其他的德斯金或者我去2号


谢谢

我认为更简单的方法是将“somecondition”设置为在someClass上设置的属性,然后使用一个方法调用以获取数据。差不多

someClass.someCondition = somecondition

while(rs.next)
{
    hashMap1 = someClass.getMyData1();
    hashMap2 = someClass.getMyData2();
}
或者,您可以将变量传递到函数中

while(rs.next)
{
    hashMap1 = someClass.getMyData1(somecondition);
    hashMap2 = someClass.getMyData2(somecondition);
}

我认为一种更简单的方法是将“somecondition”作为您在someClass上设置的属性,然后使用一个方法来调用以获取数据。差不多

someClass.someCondition = somecondition

while(rs.next)
{
    hashMap1 = someClass.getMyData1();
    hashMap2 = someClass.getMyData2();
}
或者,您可以将变量传递到函数中

while(rs.next)
{
    hashMap1 = someClass.getMyData1(somecondition);
    hashMap2 = someClass.getMyData2(somecondition);
}

在第一个例子中,检查一次条件,然后遍历N条记录。在示例2中,您正在对N条记录进行迭代,并执行N个条件检查。如果这是一个需要为每个记录检查的条件,那么第二个循环就是要使用的循环。否则,如果它是一个只需要检查一次的条件……为什么要增加不必要的检查条件N次的开销?

在第一个示例中,您检查一次条件,然后在N条记录上迭代。在示例2中,您正在对N条记录进行迭代,并执行N个条件检查。如果这是一个需要为每个记录检查的条件,那么第二个循环就是要使用的循环。否则,如果它是一个只需要检查一次的条件…为什么要增加不必要的检查条件N次的开销?

这些类型的操作通常与
过滤
转换
压缩
减少
等操作相关。Guava实现了其中的大部分,这些类型的操作通常与
过滤
转换
压缩
压缩
减少
等操作相关。Guava实现了其中的大部分操作,生成的代码看起来非常漂亮。