读取文件并计算Java中的相同条目

时间:2011-07-08 20:34:20

标签: java

我需要一些建议。我知道如何笨拙地解决这个问题,但我想以正确的方式做到这一点,因为我需要给某人留下深刻的印象。

我有一个文本文件,例如:

[XXX622] [YYY]  [LLL]   [E77700]  [NNN]  [6JL99NNN] [HH66]  [0770LLL]  [R88] [VVV]
[B177HQ] [8RR22]   [PPP]  [GGG]  [CCXXXGG]   [8IIXX0] [3KCC]   [00222]
[222] [OO] [OO] [OO] [99]   [555444]   [33]

我需要读取条目,然后使用它们进行处理,例如按字母顺序排序。

我不知道怎么做的过程是计算每行中有多少相似的条目。

如果我将条目读入字符串数组并将数组传递给计数方法,那么我该怎么做才能让方法知道每个条目的哪一行?我应该创建一个二维数组并将亚麻布与条目一起作为字符串插入吗?

提前致谢!

2 个答案:

答案 0 :(得分:2)

这是一个提示。

当您处理该行时,使用Map(其中一些具体实现; HashMap将起作用)。如果您知道如何在Map中插入条目,并且知道如何判断Map中是否已存在条目,那么您就有了解决方案!

如果你真的想给他们留下深刻的印象,请向他们解释为什么Map解决方案很快,然后解释速度与内存的权衡。使用Big-O表示法会给他们留下更深刻的印象,也会表明你知道你在说什么。

因为你说这是为了实习,所以我不打算给你整个(工作)解决方案。如果您打算给他们留下深刻印象,那么您应该自己制定解决方案。在我看来,提出一个社区解决方案作为你自己的解决方案会有点不诚实。

答案 1 :(得分:1)

你有一些不错的选择。最简单的方法是简单地读入条目并一次处理一行,而不是一次完成。另一种选择是创建一个代表一行的类:

public class CodeLine {
    public int lineNumber;
    public List<string> codes;
}

这是一种更“面向对象”的方式来表示你的线条,而不是2D数组。