问题描述
做项目的时候遇到一个统计问题。要根据栅格图的一个属性,提取其中不同的栅格,但是每次作业,提取的条件不一定相同。比如,该属性的值域为[0,100]。今天我需要提取属性为0~10和25~30的栅格,明天我需要提取50~81和26~32和0~3范围的栅格,后天可能要根据客户需要提取别的范围的栅格(客户需求共有多少个区域事先不知道,每个区域的边界事先也不知道),同时在每个区域内的栅格需要分别添加到不同的数组中。这个栅格图数据量特别特别大,如果遍历一遍只能提取一个区域的值,对于N个区域我要遍历N次,影响效率。我现在想只过滤一遍就得到所需的所有分类(就是提高效率)。请问这个有什么方法?比如我提取0~10和25~30的栅格,代码如下。//x是属性值doubledblX=0;//保存属性值小于10的arrayArrayListal10=newArrayList();//保存属性值大于25且小于30的arrayArrayListal25To30=newArrayList();//这里ArrayList.Add的只是属性,实际上添加的是栅格结构体if(dblX<10)al10.Add(dblX);elseif(dblX>25&&dblX<30)al25To30.Add(dblX);
如果我现在想添加判断条件,有什么好的方法吗?还是只能修改源代码?如果源代码不能修改的时候该怎么办?
解决方案
解决方案二:
条件也放在集合里,每次判断遍历集合中所有条件。保存集合用二维数组,数组对象嵌套或者字典,把遍历后符合条件的数据放入条件对应的保存集合里
解决方案三:
我试一试,不过是新手,可能不太熟悉,要是能有个代码提示最好啦~多谢。
时间: 2024-08-28 03:15:45