我正在开发一个程序来读取.txt文件中的Wikipedia页面视图统计文件,到目前为止,我有一个读取此文件的加载方法,如下所示:
public void loadPVSF(String x) throws FileNotFoundException, IOException {
FileInputStream f = new FileInputStream(x); //obtains bytes from an input file
DataInputStream in = new DataInputStream(f); //reads primitive java types
BufferedReader br = new BufferedReader(new InputStreamReader(in));
while ((temp = br.readLine()) != null) {
tempArray = temp.split("\n"); //adds each line to an array tempArray
for (String st : tempArray) //puts each element of tempArray through String st
{
MainArray = st.split(" "); //adds each string after a " " to MainArray
for (String str : MainArray) {
if(linecounter<5){
linecounter++;
System.out.println(linecounter + ": " + str);
运行此命令,这是以下命令行输出的示例:
1: commons.m
2: Category:Gracie_Gold
3: 1
4: 7406
1: commons.m
2: Category:Grad_Maribor
3: 1
4: 7324
1: commons.m
2: Category:Grade_II*_listed_houses_in_Cheshire
3: 1
4: 7781
基本上每组四行是:
1 - Language/Project
2 - Article Title
3 - Number of Page views
4 - Size of the Page (bytes)
我需要知道如何正确分配这些读入行中的每一行。 基本上我最终需要的是一个哈希表,它将存储文章标题列表及其相应的视图数量,以便我可以确定哪一个具有最多的视图。
非常感谢任何提示或建议。
输入.txt文件的示例:
nl Andreas_(apostel)7 103145 nl Andreas_Baader 4 46158 nl Andreas_Bjelland 2 28288 nl Andreas_Burnier 2 11545 nl Andreas_Charles_van_Braam_Houckgeest 1 10373 nl Andreas_Eschbach 1 365 nl Andreas_Grassl 1 365
答案 0 :(得分:1)
你可以拥有一个像
这样的简单类class Page {
String languageOrProject ;
String articleTitle;
int views;
int size ;
}
然后你可以用比较器排序。或者,如果您只需要最大页面浏览量,请将其添加到TreeMap
中,其中键为视图,值为pageTitle。最后,您可以在map.firstKey()
之前获得最少阅读页面,并在map.lastKey()