如题。。比如
aaa
bbb
ccc
aaa
eee
fff
eee
按行读取这个文件,如何判断两行是否相同?因为这里我需要将相同内容的所在行号记录下来,
比如上述就应该处理成这种形式:
(map类型>)
aaa:(1,4)
bbb: (2)
ccc: (3)
eee: (5,7)
fff: (6)
HashMap<String,List<Integer>> hm = new HashMap<String,List<Integer>>();
for (String s : text){
if (hm.containsKey(s)){
List<Integer> list = hm.get(s);
list.add(index);
hm.put(s, list);
}
else {
List<Integer> list = new ArrayList<Integer>();
list.add(index);
hm.put(s, list);
}
}
这个
Map
的设计没有问题,如果不考虑效率,可以一行一行读,然后做相应操作啊。
判断两行相等不就是用
equals
吗?
补充:
不完全代码:
reader = new BufferedReader(new FileReader(file));
int line = 1;
String lineStr = null; //每一行文本
while ((lineStr= reader.readLine()) != null) {
//TODO 做相应的操作,楼下已提供
line++; // 行号
}
按照题主的说法,就使用keyExist来判断是否存在就可以了阿,不知道题主是需要有什么其他的要求;