这里就有一个问题啦,读文件的问题,从文件中读出流,然后写到程序里面,然后再比较肯定会比你这个慢啊。你new一个数据其实不怎么占时间的。
解决方案 »
- 刚学java,求助字符串生成器和循环的问题
- 有用win7+sql2000sp4的吗?sql2000连接JDBC有问题
- java递归太深
- swing 的每个窗口都应该放在单独的进程里吗?
- 我在同一个package里定义了两个application Window,分别是s和a。我现在在s中定义一个按钮,想点击这个按钮后,a就显示,是怎么弄的啊,谢谢
- 谁有用UDP协议多播的例子代码啊?
- 五星“急”问题之一:java与vb互发信息,请多指教
- 请问jdk里面的classpath在哪里设置?
- 我的类参数传递,错在哪儿?
- 关于Hibernate 的@TableGenerator疑问, 看不懂这个有什么用?
- Java多线程同步问题求助
- 多线程_Condition
例如,有100000条数据, new ArrayList(100000);
这要在添加数据时效率大很多,原理是ArrayList的内部实现是用数组的,数组是不可变的对象。详细的就不说了。
如果用LinkedList的话,在查找时,用iterator来遍历。用流读文件也是个瓶颈,可以考虑用MappedByteBuffer ,先把文件映射到内存,然后读写效率就可以提高不少了。但这是以内存为代价的。
例如 A文件
1.A001|B00C|D007
2...
3... 一共200多万行
B文件 跟A文件一样
来进行对比 速度真的好慢 有什么好的解决方案没? 吧200多万条数据一下次放到内存 如果内存不大肯定爆的 请问有什么好办法?谢谢啦
例如 A文件
1.A001|B00C|D007
2...
3... 一共200多万行
B文件 跟A文件一样
来进行对比 速度真的好慢 有什么好的解决方案没? 吧200多万条数据一下次放到内存 如果内存不大肯定爆的 请问有什么好办法?谢谢啦
例如 A文件
1.A001|B00C|D007
2...
3... 一共200多万行
B文件 跟A文件一样
来进行对比 速度真的好慢 有什么好的解决方案没? 吧200多万条数据一下次放到内存 如果内存不大肯定爆的 请问有什么好办法?谢谢啦
楼上的,老军医2这位兄弟说得有点道理,至少一开始创建一个较大的List,可以尽可能的避免List底层的数组扩容。
我觉得主要的瓶颈应该是在用流读文件这一点上。可以想想这方面的优化方案。
你试试用缓冲流来读文件BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),size)其中size为你设置的缓冲容量大小,这样应该会比较快。
例如 A文件
1.A001|B00C|D007
2...
3... 一共200多万行
B文件 跟A文件一样
来进行对比 速度真的好慢 有什么好的解决方案没? 吧200多万条数据一下次放到内存 如果内存不大肯定爆的 请问有什么好办法?谢谢啦
楼上的,老军医2这位兄弟说得有点道理,至少一开始创建一个较大的List,可以尽可能的避免List底层的数组扩容。
我觉得主要的瓶颈应该是在用流读文件这一点上。可以想想这方面的优化方案。
你试试用缓冲流来读文件BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),size)其中size为你设置的缓冲容量大小,这样应该会比较快。好像用的就是BUFEREDREADER 还是慢···
例如 A文件
1.A001|B00C|D007
2...
3... 一共200多万行
B文件 跟A文件一样
来进行对比 速度真的好慢 有什么好的解决方案没? 吧200多万条数据一下次放到内存 如果内存不大肯定爆的 请问有什么好办法?谢谢啦
楼上的,老军医2这位兄弟说得有点道理,至少一开始创建一个较大的List,可以尽可能的避免List底层的数组扩容。
我觉得主要的瓶颈应该是在用流读文件这一点上。可以想想这方面的优化方案。
你试试用缓冲流来读文件BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),size)其中size为你设置的缓冲容量大小,这样应该会比较快。好像用的就是BUFEREDREADER 还是慢···
设置了缓冲的大小为多少啊?
例如 A文件
1.A001|B00C|D007
2...
3... 一共200多万行
B文件 跟A文件一样
来进行对比 速度真的好慢 有什么好的解决方案没? 吧200多万条数据一下次放到内存 如果内存不大肯定爆的 请问有什么好办法?谢谢啦
楼上的,老军医2这位兄弟说得有点道理,至少一开始创建一个较大的List,可以尽可能的避免List底层的数组扩容。
我觉得主要的瓶颈应该是在用流读文件这一点上。可以想想这方面的优化方案。
你试试用缓冲流来读文件BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),size)其中size为你设置的缓冲容量大小,这样应该会比较快。好像用的就是BUFEREDREADER 还是慢···
设置了缓冲的大小为多少啊?好像没设置 但是是用BUFFER从文件读的 还是慢
例如 A文件
1.A001|B00C|D007
2...
3... 一共200多万行
B文件 跟A文件一样
来进行对比 速度真的好慢 有什么好的解决方案没? 吧200多万条数据一下次放到内存 如果内存不大肯定爆的 请问有什么好办法?谢谢啦
楼上的,老军医2这位兄弟说得有点道理,至少一开始创建一个较大的List,可以尽可能的避免List底层的数组扩容。
我觉得主要的瓶颈应该是在用流读文件这一点上。可以想想这方面的优化方案。
你试试用缓冲流来读文件BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),size)其中size为你设置的缓冲容量大小,这样应该会比较快。好像用的就是BUFEREDREADER 还是慢···
设置了缓冲的大小为多少啊?好像没设置 但是是用BUFFER从文件读的 还是慢
你设置缓冲大小试试,如果不设置缓冲好像没什么效果。设置缓冲大小好像速度会快不少。
例如 A文件
1.A001|B00C|D007
2...
3... 一共200多万行
B文件 跟A文件一样
来进行对比 速度真的好慢 有什么好的解决方案没? 吧200多万条数据一下次放到内存 如果内存不大肯定爆的 请问有什么好办法?谢谢啦
楼上的,老军医2这位兄弟说得有点道理,至少一开始创建一个较大的List,可以尽可能的避免List底层的数组扩容。
我觉得主要的瓶颈应该是在用流读文件这一点上。可以想想这方面的优化方案。
你试试用缓冲流来读文件BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),size)其中size为你设置的缓冲容量大小,这样应该会比较快。好像用的就是BUFEREDREADER 还是慢···
设置了缓冲的大小为多少啊?
读文件原本就是一个很耗费时间的操作,我觉得在读文件上想办法优化耗费的时间,倒不如在比较算法上优化耗费的时间更好
可每次读几百万行的文本TXT 就会慢···