- 論壇徽章:
- 0
|
本帖最后由 wand65 于 2016-06-16 02:57 編輯
請(qǐng)教,目前有一個(gè)文本如下:
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
需要輸出的如下:重復(fù)的段數(shù)(比如例子中的為7,表示7個(gè)1,7個(gè)2,7個(gè)3)
對(duì)列表中的第三列中重復(fù)的項(xiàng)目進(jìn)行輸出如下(其實(shí)對(duì)于相同列,起后面的帶小數(shù)的值是不一樣的):
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
.
.
.
文件中大約有兩萬行 ,行的內(nèi)容如上,文件大小1.2M。
我的思路如下:
1.對(duì)第二列中的數(shù)字1進(jìn)行統(tǒng)計(jì),計(jì)算出段數(shù),同時(shí)把第三列中1后面的放到一個(gè)數(shù)組
2.把文件讀入一個(gè)數(shù)組,數(shù)組中的每一行去匹配上面數(shù)組的每一個(gè)元素,輸出匹配成功的項(xiàng)目
3.第二列的每個(gè)塊(1,2,3)中值得順序是不一樣的
但發(fā)現(xiàn)這樣效率好低(要拿兩萬行的數(shù)據(jù)和幾千行的數(shù)據(jù)去套兩個(gè)foreach),大概要12s才能完成
請(qǐng)教高效的思路或代碼
|
|