【发布时间】:2015-11-06 07:27:30
【问题描述】:
我必须比较以下格式的两个文件:
Manufacturer,Model,Key
----------------------
Honda,Civic,12
Honda,Civic,13
BMW,z3,14
BMW,X3,15
BMW,z3,16
只有当每个型号和制造商的密钥相同时,文件才相同(相同的顺序),但型号和制造商可以有不同的顺序。 例如,上面提到的文件等同于:
Honda,Civic,12
BMW,z3,14
Honda,Civic,13
BMW,z3,16
BMW,X3,15
但不一样(思域的钥匙顺序不同):
Honda,Civic,13
Honda,Civic,12
BMW,z3,14
BMW,X3,15
BMW,z3,16
或者(BMW z3 key 的不同值):
Honda,Civic,13
Honda,Civic,12
BMW,z3,16
BMW,X3,15
BMW,z3,16
编写一个能够以这种方式比较两个文件的 java 程序的最佳方法是什么?我知道最简单的方法是使用一些 unix 命令(使用排序获取所有制造商,使用 grep 获取每个制造商的行,使用排序获取所有模型并再次使用 grep),但我必须使用 Java。 解决方案:
- 读取这些文件并将每一行添加到 Map>> 结构中,然后比较该结构中列表中的每个列表。它会起作用吗?每个文件中有 100.000 行的成本/速度有多快?
- 尝试使用java代码模拟sort和grep命令(据我所知并不容易)。
- 迭代每个制造商的每个模型的文件(可能会有 5.000 次迭代) 有任何想法吗?
谢谢!
【问题讨论】: