JAVA文件数据对比怎么差距巨大? 这里就有一个问题啦,读文件的问题,从文件中读出流,然后写到程序里面,然后再比较肯定会比你这个慢啊。你new一个数据其实不怎么占时间的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先,如果你用ArrayList来放的话,请先判断数据条数,new对象时用带容量参数的构造方法。例如,有100000条数据, new ArrayList(100000);这要在添加数据时效率大很多,原理是ArrayList的内部实现是用数组的,数组是不可变的对象。详细的就不说了。如果用LinkedList的话,在查找时,用iterator来遍历。用流读文件也是个瓶颈,可以考虑用MappedByteBuffer ,先把文件映射到内存,然后读写效率就可以提高不少了。但这是以内存为代价的。 你这点提醒我了 是的 我这NEW的是在内存里 确实比较快 我才反应过来 文件好像是这样 2个文件进行对比 例如 A文件 1.A001|B00C|D007 2... 3... 一共200多万行 B文件 跟A文件一样来进行对比 速度真的好慢 有什么好的解决方案没? 吧200多万条数据一下次放到内存 如果内存不大肯定爆的 请问有什么好办法?谢谢啦 你这点提醒我了 是的 我这NEW的是在内存里 确实比较快 我才反应过来 文件好像是这样 2个文件进行对比 例如 A文件 1.A001|B00C|D007 2... 3... 一共200多万行 B文件 跟A文件一样来进行对比 速度真的好慢 有什么好的解决方案没? 吧200多万条数据一下次放到内存 如果内存不大肯定爆的 请问有什么好办法?谢谢啦 你这点提醒我了 是的 我这NEW的是在内存里 确实比较快 我才反应过来 文件好像是这样 2个文件进行对比 例如 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为你设置的缓冲容量大小,这样应该会比较快。 你这点提醒我了 是的 我这NEW的是在内存里 确实比较快 我才反应过来 文件好像是这样 2个文件进行对比 例如 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 还是慢··· 你这点提醒我了 是的 我这NEW的是在内存里 确实比较快 我才反应过来 文件好像是这样 2个文件进行对比 例如 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 还是慢···设置了缓冲的大小为多少啊? 你这点提醒我了 是的 我这NEW的是在内存里 确实比较快 我才反应过来 文件好像是这样 2个文件进行对比 例如 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从文件读的 还是慢 你这点提醒我了 是的 我这NEW的是在内存里 确实比较快 我才反应过来 文件好像是这样 2个文件进行对比 例如 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从文件读的 还是慢 你设置缓冲大小试试,如果不设置缓冲好像没什么效果。设置缓冲大小好像速度会快不少。 你这点提醒我了 是的 我这NEW的是在内存里 确实比较快 我才反应过来 文件好像是这样 2个文件进行对比 例如 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 就会慢··· 用缓冲流来读文件BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),size) listfiles这个方法对文件夹个数有没有限制 小算法。求教 数据库的join是什么意思 sun网站进不去了?? 关于垃圾回收的一个问题 关于FLASH从JSP那接受参数失败的问题 关于return返回 多线程的设置讨论(讨论想法) 大家帮忙啊(java GUI ) 用indexOf()怎么样来实现用户权限问题,以及怎么样用这个函数,大家讨论讨论先? 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 就会慢···