- 论坛徽章:
- 0
|
本帖最后由 wand65 于 2016-06-16 02:57 编辑
请教,目前有一个文本如下:
abc 1 I2879-I2883 10 0.0000120850
abc 1 I2883-I2889 10 0.0000150940
abc 1 I2869-I2879 10 0.000029480
abc 1 I2889-I2896 10 0.000081145
abc 1 I3173-I3177 10 0.000098300
abc 1 I7613-I7615 10 0.000102170
abc 1 I1530-I1532 10 0.000103376
abc 2 I2879-I2883 10 0.0000120850
abc 2 I2883-I2889 10 0.0000150940
abc 2 I2869-I2879 10 0.000029480
abc 2 I2889-I2896 10 0.000081145
abc 2 I3173-I3177 10 0.000098300
abc 2 I7613-I7615 10 0.000102170
abc 2 I1530-I1532 10 0.000103376
abc 3 I2879-I2883 10 0.0000120850
abc 3 I2883-I2889 10 0.0000150940
abc 3 I2869-I2879 10 0.000029480
abc 3 I2889-I2896 10 0.000081145
abc 3 I3173-I3177 10 0.000098300
abc 3 I7613-I7615 10 0.000102170
abc 3 I1530-I1532 10 0.000103376
需要输出的如下:重复的段数(比如例子中的为7,表示7个1,7个2,7个3)
对列表中的第三列中重复的项目进行输出如下(其实对于相同列,起后面的带小数的值是不一样的):
abc 1 I2879-I2883 10 0.000012085
abc 2 I2879-I2883 10 0.000012085
abc 3 I2879-I2883 10 0.000012085
abc 1 I2883-I2889 10 0.000015094
abc 2 I2883-I2889 10 0.000015094
abc 3 I2883-I2889 10 0.000015094
.
.
.
文件中大约有两万行 ,行的内容如上,文件大小1.2M。
我的思路如下:
1.对第二列中的数字1进行统计,计算出段数,同时把第三列中1后面的放到一个数组
2.把文件读入一个数组,数组中的每一行去匹配上面数组的每一个元素,输出匹配成功的项目
3.第二列的每个块(1,2,3)中值得顺序是不一样的
但发现这样效率好低(要拿两万行的数据和几千行的数据去套两个foreach),大概要12s才能完成
请教高效的思路或代码
|
|