我必须使用HashMap从txt文件中打印出前5个内容。 以下是文本文件中的示例。
A01网络应用程序
A02订婚
A03嵌入
A04印象
A05影响者
A06提及
A07微博
A08有机
A09到达
A10社交图
A11用户生成的内容
A12联盟营销
A13跳出率
A14行动呼吁
A15点击率
等...
这是我到目前为止所拥有的:
final int assumedLineLength = 16;
File file = new File("src/hw7p1/Acronyms.txt");
try {
Scanner scan = new Scanner(file);
HashMap<String, String> hashMap = new HashMap<String, String>((int)(file.length() / assumedLineLength) * 2);
while(scan.hasNextLine()) {
String[] columns = scan.nextLine().split(" ");
hashMap.put(columns[0], columns[1]);
}
for (String key : hashMap.keySet()) {
System.out.println(key +" " + hashMap.get(key));}
} catch (IOException e) {
e.printStackTrace();
}
}}
这就是我输出的内容:
A87 Big
A88 Data
A01 Web
A89 Database
A02 Engagement
A03 Embedding
A04 Impressions
A05 Influencer
A06 Mention
A07 Microblogging
A08 Organic
A09 Reach
A90 Data
A91 Data
A92 Relational
A93 Hybrid
A94 IDE
A95 Native
A96 NFC
A97 Responsive
A10 Social
A98 SDK
A11 User-generated
A99 Content
出于某种原因,在考虑上面的例子时,它正在混合一些输出。任何帮助将不胜感激。谢谢
答案 0 :(得分:2)
我建议使用LinkedHashMap,因为它保留了输入的顺序
LinkedHashMap<String, String> hashMap = new LinkedHashMap<String, String>((int)(file.length() / assumedLineLength) * 2);
答案 1 :(得分:1)
尝试:
Map<String, String> hashMap = new LinkedHashMap<String, String>(
(int) (file.length() / assumedLineLength) * 2);